【发布时间】:2011-10-09 15:13:02
【问题描述】:
当我偶然发现this question 时,我正试图深入了解自己的问题。据我了解,正在表达和测试两种不同的功能(查看关于它们的两个Whens 和两个Givens)。这样做对吗?
【问题讨论】:
当我偶然发现this question 时,我正试图深入了解自己的问题。据我了解,正在表达和测试两种不同的功能(查看关于它们的两个Whens 和两个Givens)。这样做对吗?
【问题讨论】:
有两种编写场景的方法(就此而言,还有类级别的示例)。
一个是每个场景使用一个示例。
另一个是每个场景都有行为的一个方面。
在这种情况下,非活跃用户和活跃用户的行为都提供了一些有价值的东西。没有其中之一,行为就毫无意义。所以把它们放在一个场景中是有道理的。这也提供了一个实用的好处,因为它通常需要时间来初始化场景的上下文。
如果出现第三种行为(例如,您已暂停用户以及活动和非活动用户),那么拆分它们的一个很好的理由可能是。
如果你有独立的行为方面,用不同的例子来说明它们通常是有价值的。例如:
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.
但是,要务实。如果一种方式比另一种方式更具可读性或可理解性,那么它应该优先于任何硬性规则。我会说我花了一段时间才学会如何有效地做到这一点,所以主要是靠经验。
【讨论】: