簡體   English   中英

步驟名稱中的jbehave正則表達式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM