当我偶然发现this question时,我试图深入了解自己的问题。根据我的理解,正在表达和测试两种不同的功能(看看两个Whens和两个Givens关于它们)。这样做是对的吗?
答案 0 :(得分: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.
但是,要务实。如果它比其他方式更具可读性或可理解性,那么它应该优先于任何硬性规则。我会说我花了一些时间来学习如何有效地做到这一点,所以主要是经验。