2013-12-16 47 views
2

我想写如下的jBehave步骤;写jBehave示例步骤

@When("I perform <someAction> on $panel") 

所以我可以有步骤,像

i. When I perform Action1 on Panel1 
ii. When I perform Action2 on Panel2 

现在你可以看到,这一步有占位

1. someAction which actually comes via meta 
2. $panel which is taken from the step text in the story 

的混合但这不是由我的工作和我空指针异常

它的工作原理如果我写

@When("I perform <someAction> on Panel1") 

即我不能在同一步骤中使用2个占位符。

但由于这是一个通用步骤,我不想硬编码任何值。

回答

0

是的,你可以

@When("I perform <someAction> on *panel*") 
public void perform(@Named("panel") String panelId){ 

} 

,并从现在开始,我建议按名称识别的所有元素,使用jemmy您可以使用new NameComponentChooser(panelId)

+0

其实我需要2个参数的方法; panelId和someAction – testndtv

+0

@Named参数没有限制,请检查http://jbehave.org/reference/stable/parameter-injection.html – RamonBoza

0

请您都参数之前使用$符号。然后,将处理示例参数以及正常参数。

@When("I perform $action on $panel") 
public void performAction(String action, String panel){ 
}