Должны ли сценарии Cucumber содержать определенные шаги пользовательского интерфейса? - PullRequest
3 голосов
/ 07 декабря 2011

Пользуясь Cucumber около года назад, я привык писать сценарии таким образом.

Scenario: user tries to vote on a comment
  Given I have a post
  And I have a comment on that post
  And I am logged in as a different user
  And I am on the post page
  When I click on "upvote" within the "comment"
  Then the comment score should raise
  And the comment author should get points

однако недавно я обнаружил, что начиная с Cucumber 1.1, основные определения шагов, такие как

When I click on "upvote" within the "comment"

больше не доступны, так как считаются плохой практикой. Я понимаю, как это имеет смысл, но я не совсем уверен, насколько абстрактно я должен написать свои функции сейчас.

Примеры, которые приходят на ум.

When I upvote on a comment
Then the comment should get points

или менее абстрактный

Given I have a post with a comment
And I'm not the author
When I upvote on the comment
Then the comment author should get points

или даже менее абстрактный

Given I have a post with a comment
And I'm not the author
When I upvote on the comment
Then the comment score should increase
And the comment author should get 1 point

или очень специфично в Given части

Given I have a post with a comment
And I'm not the author
And I am on the page for that post
When I upvote on the comment
Then the comment score should increase
And the comment author should get 1 point

Я знаю, что это вопрос предпочтения, но я пытаюсь найти здесь несколько лучших практик. Какой лучший способ указать сценарии?

1 Ответ

1 голос
/ 07 декабря 2011

Мне нравится делать больше декларативных сценариев, но не настолько, чтобы неясно, какая часть пользовательского интерфейса задействована.Я думаю, что команда Cucumber, пытаясь отговорить первый стиль, зашла слишком далеко в противоположную крайность.

Думаю, мне больше нравится ваш последний пример: Given в целом должен быть довольно конкретным.

...