TL; DR; Как создать пробный тест, который вызывает другой тест в качестве первого шага?
Given I already have one specflow test
And I want to run another test that goes deeper than the first test
Then I create a second test that runs the first test as its first step
And I add additional steps to test the deeper functionality
Извините, немного юмора там.
например, у меня есть тест, который уже создает продажу:
Given I want to create a sales order
And I open the sales order page
And I click the add new order button
Then a new sales order is created
И я хочу получить еще один тест, в котором тесты добавляются в строку продаж
И еще один тест, который проверяет завершение продажи
И еще один тест, который отменяет продажу
И.. так далее
Все эти тесты начнутся с тех же первых четырех шагов, что и простой тест, который нарушает принцип DRY. Итак, как я могу это сделать, чтобы первый шаг 2-го теста только запускал первый тест? например, что-то вроде:
Given I have run the create sales order test // right here it just runs the first test
And I add a sales order line
Then the order total is updated
Если каждый тест начинается с тех же первых четырех строк, а позже я понимаю, что мне нужно изменить простой тест на продажу, тогда мне также нужно будет искать и исправлять всюду, что повторяет эти четыре строки.
EDIT: обратите внимание, что это также должно работать с функциями. Например, простой тест выше определен в функции продажи. Но у меня также была бы функция кредитов, и это требовало бы создания продажи каждый раз, чтобы иметь возможность кредитовать ее:
Given I want to credit a sale
And I run the create sales order test
And I complete the the sale
And I click the credit button
Then the sale is credited