我有一个从前端称为Java/jersey API。我需要为Java代码编写测试。代码的编写方式是:1. API调用执行资源方法,该调用一个单独的方法,该方法从数据库获取数据并返回资源方法。然后将其返回javax.ws.rs.core.response。
这将是我第一次写作测试,因此请考虑我一无所知。最佳开始的方法是什么?我应该编写哪些类型的测试。我在这里的目标是单位测试。
现在,我在这里做了很多研究,我倾向于使用Junit Mockito来做到这一点。但是如何检查响应对象中的数据?
以及如何检查从数据库获取数据的另一个文件?我发现可以做到这一点的dbunit,但是我需要吗?
我遇到的另一个框架放心。我还需要包括吗?还是可以使用Junit/Mockito来完成相同的事情?
我只想要测试泽西API的人的一些方向。并想知道什么是最常见的方法。
我认为没有最好的方法,您需要测试的方法通常是主观的,并且取决于上下文。
但是,您可以以轻松测试最重要的方式构建代码,并且可以在以后/使用不同的工具进行剩下的(集成(。
我建议的是遵循六边形体系结构的原理。这个想法是要保持在应用程序的中心,并且没有任何依赖关系(导入...(到任何框架( jaxrs , jpa 等(规则。这些规则可以通过TDD轻松设计。然后,您将进行非常短的运行测试。可能有必要使用 Mockito 模拟SPI接口的实现。
第二次,您可以使用API和实现SPI接口。
如果要测试这些适配器,则退出 unit-tests 的范围,并写入 Integration-Tests 。与框架,协议以及任何实际内容集成。从框架相关的模拟(例如泽西岛测试框架(,内存数据库(例如 H2 (到完全使用 testContainers 的工具操作中间件实例。
在编写集成测试时要记住的重要性是在单位测试方面的缓慢。为了尽可能地将反馈回路保持短短,您将需要将 Integration-Tests 的数量限制为最小。
希望这对您有帮助!