Как вы противодействуете анти-шаблону сценариев BDD в Specflow?

Это пример одного из наших приемочных тестов:

Feature: Add an effect to a level
In order to create a configuration 
As a user
I want to be able to add effects to a level

Scenario: Add a new valve effect to a level
Given I have created a level named LEVEL123 with description fooDescription
And I am on the configuration page
When I click LEVEL123 in the level tree
And I expand the panel named Editor Panel
And I click the Add Valve Effect button
And the popup named ASRAddVal appears
And I click the Add new button
And I fill in these vertical fields
     | field name  | value                |
     | Name        | Effect123            |
Then I should see the following texts on the screen
     | text                     |
     | Effect added : EFFECT123 |

Мы чувствуем, что это становится немного многословным, и мы хотим послушайте, как вы уменьшаете количество шагов в Specflow. Из того, что я читал до сих пор, создание определенных шагов, которые нельзя использовать повторно, не рекомендуется, поэтому что считается «наилучшей практикой» при выполнении этого в SpecFlow?

Обновление:

Я пытаюсь сказать, что я Вы узнали, что вам следует попытаться создать общие шаги, чтобы повторно использовать их в нескольких тестах. Один из способов сделать это - параметризовать ваши шаги, например: «Учитывая, что я создал уровень с именем ..», но параметризация также вводит многословие. Я хочу закончить с чем-то вроде того, что предлагает Брайан Окли в своем ответе, но я просто не понимаю, как я могу это сделать, не создавая шаги, которые очень специфичны для каждого теста. Это снова означает, что мне придется делать много шагов, которые снижают ремонтопригодность. Мне кажется, что в SpecFlow есть способ определения сокращенных шагов путем создания файла, который наследует базовый класс под названием «Steps», но он все же вводит новые шаги.

Итак, чтобы подвести итог; покажите мне хороший подход к тому, чтобы получить ответ Брайана Окли, который можно поддерживать.

6
задан Marius 5 August 2011 в 07:06
поделиться