Я использую Behat и Mink сделать некоторые функциональные тесты с моего сайта. Теперь есть функция, в которой я загружаю какой-либо файл на сервер, а затем я должен проверить изменения, внесенные на сервере, вызванные загрузкой файла, в отчет. Теперь в отчете я должен выполнить поиск в каждом из Записок и проверить правильность отображения данных. Теперь я могу поместить все это в одну функцию, потому что это приведет к тому, что она станет слишком большой и беспорядочной, особенно роль в проверке данных, я должен либо создать FeatureContext
с состоянием, которое принимает данные поиска и данные результата в отдельном шаги, или мне придется помещать их данные поиска и ожидаемые данные результата в одну таблицу, что было бы не очень чисто. Я не могу использовать Scenario Outline, потому что это может привести к тому, что файл будет загружен каждый раз, когда выполняется сценарий, что тоже не очень хорошо.
Так что лучший способ справиться с этим, кажется, создания отдельных сценариев для загрузки и проверки функций и выполните одно из следующих действий:
1. Как-то сказать Behat выполнить «Check» Сценарий сразу после ' Загрузить ' Сценарий.
2. Назовите 'Загрузить' Сценарий от 'Проверить' Сценарий.
Как можно выполнить любую из этих двух альтернатив? Если никто не может, тогда как лучше всего справиться с этим?Behat: запуск сценариев в определенном порядке, или ссылки на сценарий из другого
ответ
Вы должны убедиться, что файл загружен, сценарии должны быть независимыми.
Используйте фон для настройки, таким образом, если фон не работает, будут проигнорированы следующие сценарии.
Ключ экономии времени и не выгрузка каждый раз - это проверить, загружен ли файл каким-либо образом или проверить, что первый этап настройки был выполнен успешно.
Например, на этапе настройки у вас может быть условие типа if (! IsUploaded) {загрузить файл}.
Загружен может проверить наличие переменной, файла для случая, когда вы установили это при первом успешном выполнении шага, или он может проверить, загружен ли файл другими способами (проверьте имя файла где-нибудь или проверьте некоторые изменения в интерфейсе).
@javascript @insulated
Feature: Search
Background:
Given I upload the search config file if needed
And I am on homepage
Scenario: Search - search with valid term
When I search for phone
Then the search result page should contain phones
Scenario: Search - search with valid term
When I search for blabla
Then the search result page should contain no items found message
«Я загрузить конфигурационный файл поиска в случае необходимости» - должен содержать проверку, чтобы увидеть, если файл обновляется, и если не выполнять вызовы шагов для загрузки файла.
Это все еще не чисто. Главная цель вопроса - найти опрятное решение. – user2268997