BDD REST测试场景中各步骤是否需要执行基础断言
BDD测试前置步骤的断言规则解答
核心结论
你需要在每个Given前置步骤中加入基础断言,这一操作完全不违反「单组WHEN-THEN、场景断言放THEN」的BDD设计原则。
具体原因
- Given系列步骤的定位是测试前置条件准备,核心目标是让系统进入到可执行When操作的预期状态,不属于本次场景的核心测试对象。如果前置步骤执行失败,后续的When/THEN执行结果完全不具备参考性,和你要验证的「购买航班能否预订成功」的场景目标没有关联。
- 你在Given步骤中添加的仅为基础健康校验(比如校验接口返回200状态码、必要返回字段存在),属于「前置有效性校验」,不是「场景核心逻辑断言」,两类断言的定位完全不同:
- 前置校验断言:放在Given/And步骤,仅确认前置操作执行成功、系统进入预期状态,失败后直接标记场景为「前置条件不满足」,不属于测试不通过
- 场景验证断言:放在THEN步骤,是本次场景要验证的核心业务逻辑,失败后才标记为测试不通过
实操建议
如果使用Cucumber这类BDD框架,可以把基础校验逻辑封装到步骤定义的底层代码中,上层的场景描述不需要体现这些技术细节,保持业务可读性即可。如果需要单独验证选座、添加行李这类接口的逻辑,可以单独编写对应场景,不要和主流程场景的前置校验混为一谈。
内容的提问来源于stack exchange,提问作者user1244808
相关产品推荐
相关产品推荐

