2013-08-01 51 views
1

我实现贝哈特有水貂,采用以下特点:贝哈特与水貂意外一步错误

Scenario: Search for another phrase that exists 
Given I am on "/wiki/Main_Page" 
When I fill in "search" with "Behavior Driven Development" 
And I press "searchButton" 
Then I should see "agile software development" 

我已经使用了GOUTTE和SAHI公司,误差是一致的。我得到错误的“那我应该看到‘敏捷软件开发’

Scenario: Search for another phrase that exists    # features/wikipedia.feature:13 
Given I am on "/wiki/Main_Page"       # WikipediaFeatureContext::visit() 
When I fill in "search" with "Behavior Driven Development" # WikipediaFeatureContext::fillField() 
And I press "searchButton"         # WikipediaFeatureContext::pressButton() 
Then I should see "agile software development" 
    Ambiguous match of "I should see "agile software development"": 
    to `/^I should see "([^"]*)"$/` from AccountFeatureContext::iShouldSee() 
    to `/^(?:|I)should see "(?P<text>(?:[^"]|\\")*)"$/` from WikipediaFeatureContext::assertPageContainsText() 

如何来解决这个问题。

回答

1

删除了‘我’从此我应该能看到‘敏捷软件开发’的步骤。

0

这个问题也可以通过使正则表达式更加明确予以避免。

你上面仍然可以让你写暧昧步骤中使用的方法。

最好。

1

您的小黄瓜语句匹配多个方法的正则表达式。

您的FeatureContext文件中可能有另一种方法,它会匹配导致模糊错误的“我应该看到”。

我发现,当我遇到这个时,我错误地拼写应该与大写字母S结果在一个新的方法被追加。

“我应该看到‘等等等等’” 代替 “我应该能看到‘等等等等’”

请检查您的特性文件中的任何拼写错误:“我看到...”语句和检查功能上下文文件并删除额外的方法。

然后您就可以写小黄瓜语法的语句正确包括你我的

1

你包括定义/ 2分不同的情况下实现“相同”的步骤定义。在我看“东西”步骤定义来自于MinkContext免费的,所以我的建议是从您的自定义背景移除:AccountFeatureContext和WikipediaFeatureContext和包括MinkContext:

http://behat.org/en/latest/user_guide/context.html#multiple-contexts

如果你把额外的逻辑在你的方法定义,我建议创建一个新的一句话来说明你是假装什么可看,那里使用的子上下文重用现有的实现:

http://docs.behat.org/en/v2.5/guides/4.context.html

除了这个考虑使用anothe r驱动程序与Sahi不同,它不再保持:

https://packagist.org/packages/behat/mink-sahi-driver