没有 运行 Tomcat 的 RestAssured 测试

RestAssured testing without running Tomcat

我有需要测试的 REST 网络服务。我正在使用 Mockito 模拟 DAO 类,并使用 RestAssured 通过 URI 测试 REST 方法。有没有什么方法可以测试 REST 服务而无需 运行 将其与 Tomcat 分开?或者如何在 Tomcat 上 运行 在测试用例之前使用模拟的 类 应用程序?

有一个教程向您展示如何使用 Maven 启动 tomcat 的嵌入式实例,并使用 RestAssured 针对您的服务进行 运行 测试:

http://www.hascode.com/2011/09/rest-assured-vs-jersey-test-framework-testing-your-restful-web-services/

您在一个 shell 中开始 tomcat 并在另一个 运行 中开始您的测试。

但是,我强烈建议使用透明地启动嵌入式容器的 jersey 测试框架。在这种情况下,您根本不会使用 RestAssured,而是使用 jersey 测试客户端。您的测试将 运行 更快、更轻松。此处有详细记录:https://jersey.github.io/documentation/latest/test-framework.html。本教程还演示了这种方法,尽管在我看来客户端构建不正确。

过去,我还通过直接调用实现 class 方法来测试 REST 资源。虽然这没有测试 http 查询 parameters/body 到 java 方法参数的正确映射,但它通常就足够了(尤其是当我还在编写客户端代码时)。