2013-08-01 3 views
1

Я реализующего Behat с норок, используя следующую особенность:Behat с норка неожиданным шагом ошибки

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 и Сахи, и ошибка соответствует. Я получаю ошибку «Тогда я должен видеть„быстрой разработки программного обеспечения“

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

Помимо этого рекомендуется использовать соседний r отличается от Sahi, он больше не поддерживается:

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