如果我在数据表中使用的不是List或Map类型的数据,则会给我错误
cucumber.runtime.CucumberException: Not a Map or List type
这就是我正在测试的方式。我正在从头到尾进行测试,即编写功能>然后编写步骤def>编写功能文件(仅用于测试目的)。
java函数:
public String getScenarioName(Scenario scenario) {
System.out.println("scenario.getName().toString());
}
步骤定义:
@And("^Get current scenario name$")
public void get_current_scenario_name(Scenario scenario) {
System.out.println(getScenarioName(scenario));
}
功能文件:
Scenario: Title of your scenario
Given I have a scenario
Then Get current scenario name
|scenario|
由于我将Scenario
接口用作参数,因此必须在功能,步骤和功能文件中使用它。
注意:请不要用奇怪的情况来判断,我只是在测试它。
我浏览了以下链接,但这对我没有帮助。它总是给我同样的错误。
https://github.com/cucumber/cucumber-jvm/issues/741
http://grasshopper.tech/340/ >>这是我无法实现的,并没有默默地理解它。
答案 0 :(得分:1)
您的方向有些错误。要在给定的步骤中打印出方案名称,您必须在步骤中将其捕获之前,先将其捕获,然后将其捕获:
import cucumber.api.Scenario;
import cucumber.api.java.Before;
import cucumber.api.java.en.And;
public class ExampleSteps {
private Scenario scenario;
@Before
public void capture_scenario(Scenario scenario){
this.scenario = scenario;
}
@And("^get current scenario name$")
public void get_current_scenario_name() {
System.out.println(this.scenario.getName());
}
}
然后此方案将打印My Scenario
。
Scenario: My Scenario
And I get the current scenario name