我一直试图找到一个基于Spring MVC的Rest Services的简单的全能单元测试框架。
我一直在网上搜索并缩小到:
我喜欢RestFuse,因为它主要基于注释,但是放心似乎有一种更简单的方法来传递参数和检查响应。最后,作为一个Spring MVC Rest Service项目,我想知道我是否应该坚持使用MockMVC在Spring中测试Rest Services的已经建立的方法。
有兴趣获得任何反馈,以及表现,过去的经历以及是否还有其他事情我应该考虑。
答案 0 :(得分:6)
Rest-Assured正在接受其他框架的测试,以测试Java中的REST服务。 BDD风格流畅的界面,易于阅读测试脚本,学习曲线极小。
我使用此框架将REST服务验证为最终用户,并且更容易为它们实现测试脚本。因此,我无法对REST保证的Spring MVC部分做出太多评论。
但是,此博客post为您提供了有关RestAssured v2.2的更多详细信息,其中包括基于MockMVC构建的spring-mock-mvc
模块,通过REST确保BDD风格流畅的界面风格。博客文章还提醒:
何时不使用
RestAssuredMockMvc
不应被视为完全替代 vanillaMockMvc
因为它包含更多特定的功能 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)?的回答)。