You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Cucumber测试场景中是否允许使用两个Then步骤?

Cucumber单个场景中使用多个Then步骤的可行性

你的写法完全可行,Cucumber允许在单个测试场景中使用多个Then步骤。

为什么你的场景没问题

你描述的是一个完整的用户操作闭环:用户完成下单流程后,同时触发两个直接结果——订单生成、成功通知显示。这两个验证点都是同一When操作(点击"Buy")的即时产出,放在同一个场景里既符合业务逻辑,又能避免重复执行前面的前置步骤(下载APP、登录、加购),节省测试执行时间。

在Gherkin语法里,And和Then在功能上是等价的,只是语义上And更适合用来延续同一组验证逻辑,所以你的示例写法可以保留,或者把第二个Then换成And,读起来会更自然:

Given the user has downloaded the app
And logged in to the app
And user has item in basket
When user clicks "Buy"
Then order is created
And success notification is displayed

什么时候需要拆分成独立场景

只有当两个验证点属于不同的业务逻辑维度,或者需要额外操作才能验证时,才需要拆分:

  • 比如验证订单创建可能需要查询后台数据库/订单管理页面,而验证通知显示只需要关注前端UI,如果你希望测试更聚焦单一职责,可以拆成两个场景
  • 或者其中一个验证依赖另一个验证完成后的后续操作(比如先验证订单创建,再进入订单详情页做其他操作),这种情况也需要拆分

但回到你的场景,这两个结果是下单操作的直接且同步的产出,完全可以放在同一个场景里。

内容的提问来源于stack exchange,提问作者kkk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 19:23:17