[英]jbehave regex in step name
如何將以下不同步驟映射到單個java方法?
Then 1st message should be ...
Then 2nd message should be ...
Then 3rd message should be ...
Then 15th message should be ...
@Then("$ord(st|nd|rd|th) message should be ...")
public void assertMessage(int ord) {...}
為什么(st|nd|rd|th)
不起作用?
我認為,這是使用Jbehave和Java實現這一目標的兩種方法:
1.)在數字和(st | nd | rd | th)之間添加空格,以便Jbehave可以輕松識別它們:
@Then("$var {st|nd|rd|th} message should be ...")
public void assertMessage(int var) {
System.out.println("VAR:"+var);
}
所以你的故事是:
Then 1 st message should be ...
Then 2 nd message should be ...
Then 3 rd message should be ...
Then 15 th message should be ...
2)假設您一直想刪除最后兩個字符,您將讀取數字和注釋並執行子字符串功能:
@Then("$var message should be ...")
public void assertMessage(String var) {
int nr = Integer.parseInt(var.substring(0, var.length()-2));
System.out.println("VAR:"+nr);
}
這樣您就可以保持故事如:
Then 1st message should be ...
Then 2nd message should be ...
Then 3rd message should be ...
Then 15th message should be ...
如果您只重寫故事,這將變得非常容易。 在步驟名稱中,它實際上並不需要任何特殊的正則表達式。
Then message 1 should be ...
Then message 2 should be ...
Then message 3 should be ...
Then message 15 should be ...
@Then("message $ord should be ...")
public void assertMessage(int ord) {...}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.