Cucumber. Корректное наполнение .feature файла

Всем привет.
В процессе изучения и попытке применения на практике cucumber’a, возник вопрос о наполнении .feature файла. Везде в интернетах встречаю простой пример, типа:


Функция: Снятие денег со счета

  @success
  Сценарий: Успешное снятие денег со счета
    Дано на счете пользователя имеется 120000 рублей
    Когда пользователь снимает со счета 20000 рублей
    Тогда на счете пользователя имеется 100000 рублей

  @fail
  Сценарий: Снятие денег со счета - недостаточно денег
    Дано на счете пользователя имеется 100 рублей
    Когда пользователь снимает со счета 120 рублей
    Тогда появляется предупреждение "На счете недостаточно денег"

с этим сценарием все понятно
но что если по какому-то функционалу, например по фильтрации, и меня есть несколько проверок, которые мне нужно описать?
Пример (условно):
Функциональность: фильтрация элементов
сценарий 1: фильтрация по наименованию
сценарий 2: фильтрация по дате
сценарий 3: фильтрация по какому-то признаку
сценарий N: фильтрация с указанием нескольких параметров
плюс для каждого сценария должны быть описаны @success и @fail результаты

как это должно выглядеть? можно все эти сценарии описать в одном .feature файле или под каждую проверку нужен отдельный .feature файл?

Это как Вы захотите. В общем случае, если шаги тест-кейса одинаковые, а отличаются только результаты или некоторые параметры в шагах, то лучше это описать одним сценарием, используя Scenario Outline.

Можно написать что-то вроде
Когда пользователь использует фильтр ‘filter’
Тогда значение должно быть ‘result’
|filter |result|
|date | date1,date2,date|
|id | id1 id2 id3|
|smthelse| smth,smth2, smth3|

1 лайк

Это в случае перевёрнутой таблицы. :slight_smile: