採用兩種不同的方式來說明相同的行爲。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」,則該情景不必更改,因爲核心業務需求並沒有真正改變(儘管步驟實施會)。此外,「高容量客戶」這個詞彙表達了我們爲什麼給他們打折的原因。
那麼,哪個更好?相反,在什麼情況下我應該支持前者還是後者呢?