1

当我偶然发现这个问题时,我正试图深入了解自己的问题。据我了解,正在表达和测试两种不同的功能(查看关于它们的两个Whens 和两个Givens)。这样做是否正确?

4

1 回答 1

3

有两种编写场景的方法(就此而言,还有类级别的示例)。

一种是每个场景使用一个示例。

另一个是每个场景都有一个行为方面。

在这种情况下,非活跃用户和活跃用户的行为都提供了一些有价值的东西。没有其中之一,行为就毫无意义。所以把它们放在一个场景中是有道理的。这也提供了一个实用的好处,因为它通常需要时间来初始化场景的上下文。

拆分它们的一个很好的理由可能是第三种行为开始起作用(例如,您暂停了用户以及活动和非活动用户)。

如果你有不同的行为方面,用不同的例子来说明它们通常是有价值的。例如:

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.

但是,要务实。如果一种方式比另一种方式更具可读性或可理解性,那么它应该优先于任何硬性规则。我会说我花了一段时间才学会如何有效地做到这一点,所以大部分都是经验。

于 2011-10-11T09:28:44.333 回答