2013-08-22 31 views
1

我期待使用相同的步驟,我用黃瓜JVM如何使用非捕獲括號捕獲單詞或根本沒有?

我ATDD測試的兩個變化。然後爲了通過數量限制

然後依次流限制

這會在不同情況下讀取更好。我曾嘗試過以下各種變化:

@Then(value = "^order passes (?: | quantity)limits$") 
public void verifyCreditPassed(){ 
    //Assert stuff 
} 

任何人都可以幫忙嗎?

感謝

回答

5

您需要刪除^$元字符,那麼你的正則表達式變成:

order passes (?:quantity |)limits 

,因爲當你使用^行必須以單詞order因爲你使用$啓動該行必須以limits結尾,上述正則表達式將在輸入字符串內的任意位置匹配您的句子。

或使用正則表達式如下:

^Then order passes (?:quantity)?limits$ 
+0

由於第一選擇完美的作品:) – Mick

+2

'(?:量)?'將清潔恕我直言。 (而不是匹配一些文字或組中的任何東西,爲什麼不使整個組是可選的?但你仍然必須小心周圍的組空白空間 – basti1302

+0

這是一個有效的和更正確的選項,但那是第一個我很快就回答了這個問題,這讓我想起了這件事。謝謝@ basti1302。 –

0

想通這個選項也出來:

@Then(value = "^order passes(?: | quantity)limits$") 
public void verifyCreditPassed(){ 

}