#java #intellij-idea #cucumber #integration-testing #gherkin
#java #intellij-идея #cucumber #интеграция-тестирование #корнишон
Вопрос:
Scenrio outline
Работает без Examples
и только таблица в каждом инструменте или Intellij является специальным?
Я прочитал ссылку на Gherkin, и в ней указано, что под ней Scenario outline must have an Examples
.
https://docs.cucumber.io/gherkin/reference/
Но когда я запускаю свои тесты с использованием Scenario Outline
, он отлично работает без Examples
раздела в любом месте. Здесь:
Scenario Outline: Sequence of customer update for something
Given we create a Customer
When we update the customer with a state "<name>"
Then the response status code is 200
And we close the response
| name|
| Bob|
| Adam|
| Rachel|
Как это работает?
Ответ №1:
Я думаю, что это интерпретирует таблицу как таблицу данных Cucumber, которая выглядит аналогично таблице примеров, но ведет себя по-другому. Таблицы примеров приводят к повторному запуску всего сценария для каждой строки, но таблицы данных — это просто большой одиночный параметр, передаваемый на шаге непосредственно над ними.
Я немного удивлен, что вы не получили синтаксическую ошибку из-за пропуска Examples:
ключевого слова. Я только что попытался удалить Examples:
в одной из схем сценария в моей среде, и хотя она «прошла» (или, скорее, не завершилась сбоем), на самом деле она не запускала тест (отчет показывает 0 сценариев, 0 шагов). Так что будьте осторожны, у вас может быть ложный положительный результат на руках.
На самом деле я пошел, чтобы исправить ошибку, и обнаружил, что она уже была исправлена. Десять лет назад …
Комментарии:
1. Это не таблица данных в качестве аргумента в коде Java для того, когда часть схемы сценария является строкой, а не объектом таблицы данных. Я думал, что это вызовет рвоту, но, к моему удивлению, этого не произошло, и он отлично выполняет сценарии
2. Ха, это интересно. Я думаю, cucumber java достаточно умен, чтобы справиться с этой ситуацией и просто продвигаться вперед. На самом деле я использую cucumber.js и это не вызывает сбоев, но и ничего не запускает.
3. В моем случае это не блевотина, а запуск сценариев, что довольно странно
Ответ №2:
В моем случае у меня ошибочно была схема сценария вообще без примеров:
Scenario Outline: System displays search criteria
Given UserS is logged in
Then UserS is on the 'Search' page
When UserS clicks on the 'Search criteria' link
Then the system displays the search criteria
Тесты, как ни странно, выполняются полностью, завершаясь без ошибок. Только когда я попытался создать html-отчет, ошибка продолжала говорить, что примеров не существует, что побудило нас проверить файл feature.
Итак, я предполагаю, что тесты каким-то образом обходят раздел примеров, если параметр отсутствует, но reporter не настолько снисходителен.