2012-09-12 19 views
2

我有这两个测试。他们几乎做同样的事情,所以我不想写两个单独的步骤,做几乎相同的事情。黄瓜测试的步骤定义应该能够处理“一个”和“一个”[正则表达式相关]

Scenario: I delete a question link 
    Given I am on the home page 
    When I "delete" a "question" link 
    Then A "question" link should be "deleted" 

Scenario: I delete a account link 
    Given I am on the home page 
    When I "delete" an "account" link 
    Then An "account" link should be "deleted" 

如果我想写与I "delete" a "question" linkI "delete" an "account" link工作的一步,我将如何修改下面的正则表达式来处理“一”和“一个”。

/^I "([^"]*)" a/an?? "([^"]*)" link$/ 

回答

4

这应该这样做:

/^I "([^"]*)" an? "([^"]*)" link$/ 

问号指示“n”字符可以是字符串的一部分,但不必

如果有任何“价值”在你也可以使用的类型中:

/^I "([^"]*)" (a|an) "([^"]*)" link$/ 
+0

很有趣,因为他/她几乎是偶然发现了''''''。 –

+1

难道你不能只包装你的原始正则表达式在一个组? '(一个?)' – FrankieTheKneeMan