我读了鲍勃·马丁 (Bob Martin) 的精彩文章,内容是关于如何将“Given-When-Then”实际与 FSM 进行比较。这让我开始思考。 BDD 测试可以有多个“何时”吗?
例如。
GIVEN my system is in a defined state
WHEN an event A occurs
AND an event B occurs
AND an event C occurs
THEN my system should behave in this manner
我个人认为这应该是 3 种不同的测试,以实现良好的意图分离。但除此之外,是否有任何令人信服的理由支持或反对这种方法?
最佳答案
如果在执行实际断言 (THEN) 之前需要多个步骤 (WHEN),我更喜欢将它们分组在初始条件部分 (GIVEN) 中,而在 WHEN 部分中只保留一个。这表明真正触发我的 SUT“ Action ”的事件是这个,而前一个是到达那里的更多步骤。
你的测试会变成:
GIVEN my system is in a defined state
AND an event A occurs
AND an event B occurs
WHEN an event C occurs
THEN my system should behave in this manner
但我想这更多是个人喜好。
关于testing - 在 “Given-When-Then” 样式的 BDD 测试中,可以将多个 “When” 与 “And” 结合使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30874157/