为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Cucumber 进行多级测试

使用 Cucumber 进行多级测试

一只斗牛犬 2023-08-09 15:52:16
我对我的软件进行了一些 BDD 测试,在 Gherkin 中声明并使用 Cucumber JVM 运行。Cucumber JVM 测试可以在我的应用程序的多个级别(层)中的任何一个上运行:通过前端(使用 Testcontainers 的 HTML)、通过后端(使用 Testcontainers 通过 REST API 通过 HTTP 进行 JSON)、通过后端-end 在(使用 Java 方法调用的 Spring Boot 测试)测试工具中使用模拟 HTTP 服务器,或(对于某些测试)通过服务层(Java 方法调用)。但当然,我想在某种程度上测试我的应用程序的所有这些层。这意味着我想要重复一些BDD 测试。我不想在所有级别上运行所有 BDD 测试。而且我不想只通过前端进行测试,这样更容易调试测试失败。在某些级别上,我只想进行一些关键测试,以表明应用程序的各层已正确粘合在一起。如果我天真地实现一些重复的 Cucumber JVM 测试,Cucumber 会抱怨重复的步骤定义。如何进行重复的测试,而不让 Cucumber 因重复的步骤定义而感到困惑?这是与重用步骤定义不同的问题:在不同级别,步骤的代码非常不同。它与测试 和 application 的变体不同,其中不同的构建环境使用不同的步骤定义。
查看完整描述

1 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

为此,您必须在多个级别上实现步骤定义。因此,对于应该在一个测试中对 UI 进行操作,而在另一个测试中对 API 进行操作的步骤;你需要2步定义。

如果将这些步骤定义分组到不同的文件中,则可以创建指向不同“粘合”类(步骤定义文件“.txt”)的不同运行器。

您可以将可在不同级别之间共享的步骤定义分组到一个文件中,供所有跑步者使用。

也就是说,我想知道您是否需要在应用程序的多个级别测试相同的东西(即使只是一个子集)?考虑每个测试的价值是什么,以及这将如何改变您要验证的内容。例如:如果一个方法在不同的输入上给出不同的输出,则可以在单一测试中进行测试。要测试结果是否正确显示,可能需要在 UI 或 API 级别进行测试。如果 UI 中有关于如何显示的附加逻辑,则可能是 UI 级别的测试。


查看完整回答
反对 回复 2023-08-09
  • 1 回答
  • 0 关注
  • 106 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信