【发布时间】:2019-04-10 14:44:55
【问题描述】:
我正在尝试使用Spring Boot 和JUnit 运行Cucumber 测试。
但是,当我右键单击并执行 TestRunner 类时出现以下错误。
我是否缺少任何配置?
错误:
cucumber.runtime.junit.UndefinedThrowable: The step "I feed my snake" is undefined
Feature: Snake Charmer
Scenario: Hearing your snake you anticipate sound # src/test/resources/features/first.feature:3
Given I have hungry snake # SnakeMeasureTest.i_have_hungry_snake()
When I feed my snake # null
Then I receive snek snek # SnakeMeasureTest.receive_snek_snek()
Undefined scenarios:
src/test/resources/features/first.feature:3 # Hearing your snake you anticipate sound
1 Scenarios (1 undefined)
3 Steps (1 skipped, 1 undefined, 1 passed)
0m1.378s
You can implement missing steps with the snippets below:
@When("I feed my snake")
public void i_feed_my_snake() {
// Write code here that turns the phrase above into concrete actions
throw new cucumber.api.PendingException();
}
SnakeMeasureTest.java
public class SnakeMeasureTest extends CucumberStepDefinitions {
@Autowired
SnakeController snake;
@Given("^I have hungry snake")
public void i_have_hungry_snake() {
assertEquals("hiss", snake.poke());
}
@When("^When I feed my snake$")
public void when_i_feed_my_snake() {
snake.feed();
}
@Then("^I receive snek snek$")
public void receive_snek_snek() {
assertEquals("snek snek ^_^", snake.poke());
}
}
CucumberStepDefinitions.java
@RunWith(SpringRunner.class)
@SpringBootTest
public abstract class CucumberStepDefinitions {
}
TestRunner.java
@RunWith(Cucumber.class)
@CucumberOptions(plugin = {"pretty"}, features = {"src/test/resources/features"})
public class TestRunner {
}
first.feature (src/test/resources/features)
Feature: Snake Charmer
Scenario: Hearing your snake you anticipate sound
Given I have hungry snake
When I feed my snake
Then I receive snek snek
SnakeController.java
@Controller
public class SnakeController {
private boolean fed;
@Autowired
public SnakeController() {
super();
}
public void feed() {
fed = true;
}
public String poke() {
if (this.fed == true) {
return "snek snek ^_^";
} else {
return "hiss";
}
}
}
【问题讨论】:
-
错误本身清楚地表明您有未定义的场景。可以加
@When("I feed my snake") public void i_feed_my_snake() { // Write code here that turns the phrase above into concrete actions throw new cucumber.api.PendingException(); }
标签: spring spring-boot junit cucumber cucumber-junit