Я думаю, что полностью понимаю концепции и идеи, лежащие в основе SpecFlow, но даже после прочтения Секретных свитков ниндзя с огурцами , Книги о огурцах и изучения различных форумов я все еще не уверен путь к повторному использованию.
Наши сценарии уже соответствуют различным рекомендациям
. Наши шаги должны соответствовать следующим рекомендациям (, некоторые из которых относятся к SpecFlow):
Но мы по-прежнему получаем множество вариаций одних и тех же шагов, даже если мы используем заполнители регулярных выражений. Особенно правило, согласно которому, если что-то не важно, вы не должны упоминать об этом, приводит к этим вариациям. И да, внутри эти шаги часто используются повторно, но не в сценарии.
Рассмотрим, например, следующий сценарий:
Feature: Signing where both persons are physically available
@Smoke
Scenario: Show remaining time to sign based on previous signature
Given a draft proposal
And the first signature has been set
When I try to set the second signature
Then the remaining time to sign should be shown
@Smoke
Scenario: Re-signing of the first proposal
Given a signature that has not been set within the configured time
And the first signature has just been re-signed
When I try to set the second signature
Then the remaining time should start over
Было бы лучше объединить два «данных» шага в один и потерять возможность повторного использования?
Некоторые другие примеры:
Feature: Conditionally show signatures to be signed
@Smoke
Scenario: Show the correct signature for a proposal with a night shift
Given I have a proposal for the day shift
When I change it to the night shift
Then I should only be able to sign for the night shift
@Smoke
Scenario: Show additional signature when extending the shift
Given I have a suspended proposal for the night shift
When I extend the period to the day shift
Then I should confirm extening the period over the shift
Я пропустил фундаментальную концепцию здесь?