testing - 在 “Given-When-Then” 样式的 BDD 测试中,可以将多个 “When” 与 “And” 结合使用吗?

标签 testing bdd gherkin

我读了鲍勃·马丁 (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/

相关文章:

testing - Jmeter OS 进程采样器

security - 我们可以使用sonarQube 来完全替代自定义构建的安全测试场景吗?

.net - SpecFlow - 您如何正确使用功能文件中的 "Background:"命令?

google-chrome - TestCafe 中的浏览器功能

testing - UFT 未在某些播放中识别窗口

perl - 编写涉及随机性的 Perl 测试时,最佳实践是什么?

java - 尽管在功能文件 calc.feature 中添加了背景,但仍获取 cucumber.runtime.DuplicateStepDefinitionException

tdd - 有哪些好的服务或工具可用于远程结对编程?

python - 无法在 Pycharm 社区中创建 .feature 文件

c# - Specflow/Gherkin 测试 XML 文档