我正在使用常用的步骤方法;
public void performAction(String actionText) {
//code to access actionText
}
现在我想以两种方式调用此方法。在第一种情况下,我说;
I select action %action_text_taken_from_properties_string
这里我将注释指定为
@When("I select action $actionText")
并在performAction()内部,我使用自定义processStepString()从字符串属性文件中获取实际值
现在在第二种情况下,我说;
I select action <action_text>
这里我使用Examples表来传递action_text
的值所以我的注释看起来像
@When("I select action <action_text>")
但这需要我签名为
public void performAction(@Named("action_text") String actionText)
我的问题是如何对两种情况使用相同的performAction()?
答案 0 :(得分:1)
似乎你正在使用BDD驱动的approch,但你没有指定使用Jbehave或Cucumber的进程。我假设你正在使用Jbehave。在Jbehave你可以像这样使用@Alias Annotation
@When("a stock of symbol $symbol and a threshold of $threshold") // standalone
@Alias("a stock of <symbol> and a <threshold>") // examples table
public void aStock(@Named("symbol") String symbol, @Named("threshold") double threshold) {
// ...
}
您可以参考This Link了解更多信息。
如果有效,请告诉我。