2013-08-22 29 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(){ 

}