采用两种不同的方式来说明相同的行为。BDD场景具体如何?
选项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”,则该情景不必更改,因为核心业务需求并没有真正改变(尽管步骤实施会)。此外,“高容量客户”这个词汇表达了我们为什么给他们打折的原因。
那么,哪个更好?相反,在什么情况下我应该支持前者还是后者呢?