RestFuse vs Rest Assured vs MockMVC Rest Service Unit Test Framework

时间:2016-01-07 01:41:41

标签: rest spring-mvc rest-assured mockmvc restfuse

我一直试图找到一个基于Spring MVC的Rest Services的简单的全能单元测试框架。

我一直在网上搜索并缩小到:

我喜欢RestFuse,因为它主要基于注释,但是放心似乎有一种更简单的方法来传递参数和检查响应。最后,作为一个Spring MVC Rest Service项目,我想知道我是否应该坚持使用MockMVC在Spring中测试Rest Services的已经建立的方法。

有兴趣获得任何反馈,以及表现,过去的经历以及是否还有其他事情我应该考虑。

2 个答案:

答案 0 :(得分:6)

Rest-Assured正在接受其他框架的测试,以测试Java中的REST服务。 BDD风格流畅的界面,易于阅读测试脚本,学习曲线极小。

我使用此框架将REST服务验证为最终用户,并且更容易为它们实现测试脚本。因此,我无法对REST保证的Spring MVC部分做出太多评论。

但是,此博客post为您提供了有关RestAssured v2.2的更多详细信息,其中包括基于MockMVC构建的spring-mock-mvc模块,通过REST确保BDD风格流畅的界面风格。博客文章还提醒:

何时不使用

  

RestAssuredMockMvc不应被视为完全替代   vanilla MockMvc因为它包含更多特定的功能   Spring MVC。例如,现在没有一流的支持   像flash属性和主体之类的东西。你可以添加   使用interceptor的那些。标准REST Assured也支持a   很多不同的认证方案和过滤器都没有   可在RestAssuredMockMvc API中找到。为什么你的另一个原因   可能想要使用标准的REST Assured API,如果它很重要的话   您的组织在真实容器中测试REST API(for   例如,如果您在a中配置了身份验证或授权   容器特定方式)或者如果您正在使用JAX-RS(或任何其他   框架,无论语言如何)。

最后,在REST保证的代码库中查看REST-Assured spring-mvc-webapp examples,并决定是否要尝试使用它并充分利用REST保证和MockMVC框架。

答案 1 :(得分:5)

MockMVC的优点在于它提供了一个模拟servlet容器,允许您集成测试REST服务,而无需部署到Web服务器。我相信在使用REST {Assured with spring-mock-mvc模块时,您仍然可以利用此功能。

我刚学到的另一个框架是Karate。它的作者目前正在尝试一种允许在模拟servlet容器中执行的机制(参见Peter Thomas'对Is there a mechanism for integration testing JAX-RS services without deploying (a la MockMVC)?的回答)。