首页 > 解决方案 > 我们是否应该在测试 java 代码时模拟黄瓜测试。我们应该在多大程度上使用黄瓜?

问题描述

我是一名 Java 开发人员。我们想在我们的项目中使用黄瓜测试。我们主要致力于创建 API。我擅长单元测试和研究黄瓜。我正在考虑测试持久性方法 - 作为初学者的 CRUD 操作。我的问题是,这个测试中的场景可能是什么。我还应该通过在功能文件中创建表来模拟数据库。我是否应该将 mockito 与 Cucumber 一起使用来模拟对连接到数据库和服务器的其他一些服务的调用。这些场景中的黄瓜测试应该是什么,以及在我们的 Java API 项目中创建使用黄瓜的框架的最佳方法是什么。

此外,如果不使用数据库,如何填充模型

标签: javaunit-testingtestingjunitcucumber

解决方案


IMO Gherkin(您编写Cucumber功能所用的语言)非常适合编写业务可读简单的场景。

为了快速回答,我想说 Cucumber 不适合测试方法,如果它是你想做的。

正如您在文件命名约定中看到的那样,您编写*.feature文件,我认为这些文件必须只包含与功能相关的描述。

但是,如果您确实有要测试的功能,则必须选择如何测试它们

  • 断开连接,可以由您的 CI 快速运行
    • 您将不得不模拟在构建生命周期中无法启动的所有内容
    • 它们是使用 Docker 启动几乎任何东西的解决方案,例如Testcontainers
  • 连接到环境
    • 你不必嘲笑任何东西
    • 你的测试可能会更慢
    • 您的测试可能会因环境而中断(部署失败、服务器停机等)

推荐阅读