JUnit + Mockito或RestAssured

时间:2018-11-29 07:21:21

标签: java spring junit mockito rest-assured

请帮助我选择测试REST API(Java)的正确方法。

我在先前的项目中使用过JUnit和Mockito,我知道要花费足够的时间/精力才能获得足够的代码覆盖率。但是最近我开始了解“休息保证”,这似乎很有希望。请根据您的经验提出建议。

1 个答案:

答案 0 :(得分:3)

在这种情况下,

JUnit是 runner 。这个问题确实是关于单元测试和集成测试之间的区别的,两者都可以使用JUnit作为周围的执行框架来实现。

您可以使用多种框架组合。一些常见的:

  • 用于单元测试的JUnit + Mockito-将REST API控制器bean连接到轻量级/模拟的依赖项,然后通过JAVA执行API
  • JUnit + Cucumber + RESTAssured用于集成测试-在其中编写一个测试夹具,该夹具应针对正在运行的服务器执行以行使其API

这些极端之间也有一些区别。您必须确定测试在测试金字塔上的位置。对于高度排列的测试,您将需要编写单元测试,以便能够轻松实现排列并提高执行速度。如果您已经在对它们的API进行了单元测试,那么如果真的要冒烟测试您的API是否可用,那么您将需要编写少量的集成测试。

在频谱的各点之间,包含了Mito和服务的本机测试库的组合。例如,在Spring中有SpringTest,在Jersey中有JerseyTest / Grizzly框架。在这些情况下,将建立一个非真实的http服务器来托管您的REST服务,并且您可以通过框架客户端通过模拟的REST调用对其进行测试。该单元将测试HTTP编组层以及REST控制器代码的第一层。