使用 Karate 为包含 DAO 的 API 构建组件测试?

问题描述 投票:0回答:1

我正在学习使用 Karate 为基于 Java 的 API 开发自动化测试,该 API 包含一个 DAO 层,用于与数据库通信以检索一些信息并将其呈现给被调用者。这是简单的工作流程:

获取付款信息 -> 调用 PaymentsInformationService -> 调用 PaymentInformationDAO -> 调用 MYSQL 数据库 -> 返回 200OK

使用(伪)代码:

PaymentInformationServiceImple -> PaymentsInformationDAOImple.getPayments(int custId)

我有一定的 NodeJS 组件测试背景(我使用 jest,通过简单的参考函数来消除调用上面的 dao 的支付服务的依赖关系是相当简单的)。我试图在 Karate 和这些 Java Impl 类中做同样的事情,我需要实时删除

PaymentInformationDAO
,这样组件测试就不会变成实时集成测试(即我不想测试对数据库,而是在对服务进行 /GET 调用时单独将其存根)

我已经在谷歌上搜索了很多,但我只找到了诸如使用wiremock来阻止下游API调用之类的信息。就我而言,我需要删除 DAO 本身,它不是 API 调用。我该如何处理这个问题?

java testing karate
1个回答
0
投票

空手道在 HTTP 层工作,因此服务的内部细节通常超出范围。但由于空手道是一个后台的 Java 库,因此它确实可以很好地与 Java 配合使用,例如:春季项目。但是如何设置后端以使用模拟而不是真正的实现的问题超出了空手道的范围。

所以我的建议是你必须与后端团队一起研究你的模拟方法。如果这是一个 Spring 项目,那么它应该非常简单 - 例如只是在命令行上传递一些 env 标志。如果您需要 Spring 特定示例,您可以在here找到一个。可以在here找到有关模拟依赖项的提示。

© www.soinside.com 2019 - 2024. All rights reserved.