У меня возникают проблемы с определением собственных шагов для функций BDD в настройках Behat и Mink в Yii-среде.Как (где) определить шаг функции в Behat/Mink
Я успешно установил Behat с расширением норки в соответствии с инструкциями от MinkExtension-example.
После того, как все это, я иметь следующую структуру моих папок внутри MyApp/private_html/ (были опущены некоторые глубоко вложенные папки):
├───bin
├───commands
│ └───shell
├───components
├───config
├───controllers
├───features
│ ├───bootstrap
│ └───php54_bootstrap
├───models
├───tests
├───vendor
│ ├───behat
│ │ ├───behat
│ │ │ ├───bin
│ │ │ ├───features
│ │ │ │ ├───annotations
│ │ │ │ ├───bootstrap
│ │ │ │ └───closures
└───views
Особенность в качестве примера в вышеуказанной ссылке MinkExtension-example работает без проблем. Но когда я определяю свой собственный шаг, как
Scenario: presence of menu items
Given I am on "/"
Then I should see the following: "Home, About, Contact"
Я получаю
1 scenario (1 undefined)
2 steps (1 passed, 1 undefined)
0m2.288s
с предложением
You can implement step definitions for undefined steps with these snippets:
/**
* @Then /^I should see the following: "([^"]*)"$/
*/
public function iShouldSeeTheFollowing($arg1)
{
throw new PendingException();
}
И вопрос: где я должен поставить этот код? Я пытался поставить его в
myapp\private_html\features\bootstrap\FeatureContext.php
, а также в
myapp\private_html\vendor\behat\behat\features\bootstrap\FeatureContext.php
но шаг остается неопределенным.
Итак, где шаги должны быть определены?
Вы говорите, что эти две папки ** поставщика ** и ** ** бен являются общедоступными, несмотря на то, что они находятся в папке ** private_html ** ? Я попробую с вами предложения по добавлению определений шагов в файл ** features \ bootstrap \ FeatureContext.php **. – Andrew
Нет сожаления. Я удаляю эту часть ответа. – sensorario
Я попытался добавить свои шаги к ** features \ bootstrap \ FeatureContext.php **, и, как и прежде, шаг остается неопределенным. В самом деле, я не понимаю идею контекста, о которой вы говорили, но я попытался что-то сделать: 1.первая попытка заключалась в том, чтобы добавить ** $ this-> useContext ('mink', новый MinkContext()); ** в конструктор, но ничего не изменилось 2. Затем я добавил ** использовать Behat \ MinkExtension \ Context \ MinkContext; * * - и снова ничего не изменилось. Кстати, что вы хотите сказать ** Изменить родительскую папку FeatureContext от BehatContext до MinkContext **? – Andrew