Несколько аспектов поведения в одном сценарии? - PullRequest
1 голос
/ 09 октября 2011

Я пытался понять свои проблемы, когда наткнулся на этот вопрос .Насколько я понимаю, две различные функциональные возможности выражаются и тестируются (посмотрите на них два варианта «когда» и «два Гивенса»)Правильно ли это сделать?

1 Ответ

3 голосов
/ 11 октября 2011

Существует два способа написания сценариев (и в этом отношении примеров на уровне класса).

Один - использовать один пример для каждого сценария.

Другой вариант - иметь один аспект поведения за сценарий.

В этом сценарии поведение как в случае неактивных, так и активных пользователей дает нечто ценное. Без того или другого, поведение бессмысленно. Таким образом, объединение их в один сценарий имеет смысл. Это также обеспечивает прагматическое преимущество в том, что для инициализации контекста сценария часто требуется время.

Хорошей причиной для их разделения может быть, если в игру вступает третье поведение (например, вы приостановили пользователей, а также активных и неактивных пользователей).

Если у вас есть отдельные аспекты поведения, обычно полезно проиллюстрировать их различными примерами. Например:

Given Fred bought a fridge for $100
When Fred returns the fridge
Then he should be refunded $100
And the fridge should be returned to stock.

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

Given Fred bought a fridge for $100
When Fred returns the fridge
Then he should be refunded $100

Given Fred bought a fridge for $100
When Fred returns the fridge
Then the fridge should be returned to stock.

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

...