请帮助我选择测试REST API(Java)的正确方法。
我在先前的项目中使用过JUnit和Mockito,我知道要花费足够的时间/精力才能获得足够的代码覆盖率。但是最近我开始了解“休息保证”,这似乎很有希望。请根据您的经验提出建议。
答案 0 :(得分:3)
JUnit是 runner 。这个问题确实是关于单元测试和集成测试之间的区别的,两者都可以使用JUnit作为周围的执行框架来实现。
您可以使用多种框架组合。一些常见的:
这些极端之间也有一些区别。您必须确定测试在测试金字塔上的位置。对于高度排列的测试,您将需要编写单元测试,以便能够轻松实现排列并提高执行速度。如果您已经在对它们的API进行了单元测试,那么如果真的要冒烟测试您的API是否可用,那么您将需要编写少量的集成测试。
在频谱的各点之间,包含了Mito和服务的本机测试库的组合。例如,在Spring中有SpringTest,在Jersey中有JerseyTest / Grizzly框架。在这些情况下,将建立一个非真实的http服务器来托管您的REST服务,并且您可以通过框架客户端通过模拟的REST调用对其进行测试。该单元将测试HTTP编组层以及REST控制器代码的第一层。