Вы усложняете себе задачу по нескольким причинам.
Вы не описываете поведение системы. Я не уверен, что должно делать ваше приложение, но похоже, что у вас есть продукт определенного типа, и для всех экземпляров этого типа продукта должны быть установлены определенные флаги.
Однако вы не писали это вниз, скорее вы, похоже, извлекаете все продукты этого типа из базы данных и проверяете, установлены ли для них правильные флаги. Поэтому я должен сделать вывод о поведении системы из вашего сценария. Это должно быть наоборот.
Вы пытаетесь программировать на Gherkin. Шаги в Gherkin не являются шагами в тестовом скрипте. Они не должны описывать точную операцию, необходимую для получения результата. Когда вы используете Gherkin для описания поведения системы, не имеет значения, общаетесь ли вы с системой в модульных тестах, через http или браузер.
Однако, описывая точные операции, вы рисуете себя угол. Это означает, что вы не можете эффективно обобщать без использования конструкций языка программирования, таких как циклы. Если вы отойдете от описания точных операций и попытаетесь описать, что делает система, вы можете использовать гораздо больший словарный запас.
Похоже, вы проводите тестирование на основе фиксированных данных. Похоже, что ваши данные уже введены в систему. Вы просто проверяете, все ли в порядке. Это не лучший тест, потому что он предполагает, что система находится в определенном состоянии, а не создает систему в этом состоянии или проверяет его.
Итак, чтобы исправить свой файл функций, вы можете на что-то вроде этого:
Scenario: All smart home products are in the category of AI powered spy-devices
Given the smart home product "<Product>"
When I inspect this smart home product
Then it has all the properties of an AI powered spy-device:
| Appearance |
| reading |
| writing |
| memo |
| Singing |
| Help |
| Adancefeature |
| Antiquefeatuer |
| AI nature |
| Interaction |
Examples:
| Product |
| Alexa |
| firetv |
| GoogleHome |
| Chromecast |
| SmartHub |
| SmartTV |
| AmazonVideo |
| AmazonPhoto |
| Echo |
| Echo Dot |
| Echo Show |
| Ring |
.
.
.
.
| SmartHome |
Хотя на этапе Given
вы обычно создаете продукт, в вашем случае вам нужно будет получить каталог продуктов и убедиться, что каталог содержит продукт . На шаге When
вы, вероятно, получите подробную информацию о продукте. Наконец, на шаге Then
вы должны проверить, все ли свойства были установлены при просмотре деталей.
edit:
Если вы действительно хотите проверить, все ли данные были введены в систему правильно, вы также можете сделать что-то вроде этого:
Scenario: All smart home products are in the category of AI powered spy-devices
Given the smart home product "<Product>"
When I inspect this smart home product
Then it has all the properties:
| Appearance | <Apperance> |
| reading | <Reading> |
| writing | <....> |
| memo | |
| Singing |
| Help |
| Adancefeature |
| Antiquefeatuer |
| AI nature |
| Interaction |
Examples:
| Product | Apperance | Reading | ....
| Alexa | Yes | No
| firetv | No | Yes
| GoogleHome | Yes | No
.
.
.
.
| SmartHome | No | Yes | ....
Но я бы посоветовал не использовать для этого Cucumber. В этом случае вам лучше поместить свои данные в файл Excel и использовать параметризованный тест JUnit5s.