采取两种不同的方式来说明相同的行为。
选项 A:
Given a customer has 50 items in their shopping cart
When they check out
Then they will receive a 10% discount on their order
选项 B:
Given a customer has a high volume of items in their shopping cart
When they check out
Then they will receive a high volume discount on their order
前者更为具体。如果有人对客户何时获得大量折扣或给他们多少有疑问,阅读此场景会非常清楚。服务于记录行为的目的,它尽可能具体,尽管这些值的任何更改都需要更改场景。
第二个更笼统,没有第一个清晰。自动化它需要在步骤实现中合并值“50”和“10”。另一方面,该场景抓住了核心业务需求:大批量客户获得折扣。如果我们稍后决定使用“40”和“15”,则场景不必改变,因为核心业务需求并没有真正改变(尽管步骤实现会改变)。此外,“大批量客户”一词传达了我们为什么要给他们折扣的一些信息。
那么,哪个更好?相反,在什么情况下我应该赞成前者还是后者?