java - 我们是否应该在测试 java 代码时模拟黄瓜测试。我们应该在多大程度上使用黄瓜?
问题描述
我是一名 Java 开发人员。我们想在我们的项目中使用黄瓜测试。我们主要致力于创建 API。我擅长单元测试和研究黄瓜。我正在考虑测试持久性方法 - 作为初学者的 CRUD 操作。我的问题是,这个测试中的场景可能是什么。我还应该通过在功能文件中创建表来模拟数据库。我是否应该将 mockito 与 Cucumber 一起使用来模拟对连接到数据库和服务器的其他一些服务的调用。这些场景中的黄瓜测试应该是什么,以及在我们的 Java API 项目中创建使用黄瓜的框架的最佳方法是什么。
此外,如果不使用数据库,如何填充模型
解决方案
IMO Gherkin(您编写Cucumber功能所用的语言)非常适合编写业务可读、简单的场景。
为了快速回答,我想说 Cucumber 不适合测试方法,如果它是你想做的。
正如您在文件命名约定中看到的那样,您编写*.feature
文件,我认为这些文件必须只包含与功能相关的描述。
但是,如果您确实有要测试的功能,则必须选择如何测试它们
- 断开连接,可以由您的 CI 快速运行
- 您将不得不模拟在构建生命周期中无法启动的所有内容
- 它们是使用 Docker 启动几乎任何东西的解决方案,例如Testcontainers
- 连接到环境
- 你不必嘲笑任何东西
- 你的测试可能会更慢
- 您的测试可能会因环境而中断(部署失败、服务器停机等)
推荐阅读
- html - 即使我做到了,CSS也没有将项目向右对齐
- vuetify.js - 如何在 vuetify v-calendar 中使用“event-more-text”道具
- javascript - 无法在数据表中显示图像 (Javascript)
- sql - 从具有特定条件的 SQL 中创建的视图中选择
- reactjs - 在 SPA 中对访客/匿名用户进行身份验证
- redcap - REDCap 自动填充早期记录中的字段
- javascript - 为什么卡不会扩展?
- python - 如何在 numpy 的 3d 数组中找到最小值和最大值,并对结果进行分组?
- java - Gradle 是否支持在单个项目中构建多个 java 模块?
- css - 我还需要显示:-webkit-flex;-moz-flex; -ms-flex; 在 2021 年?