没有 运行 Tomcat 的 RestAssured 测试
RestAssured testing without running Tomcat
我有需要测试的 REST 网络服务。我正在使用 Mockito 模拟 DAO 类,并使用 RestAssured 通过 URI 测试 REST 方法。有没有什么方法可以测试 REST 服务而无需 运行 将其与 Tomcat 分开?或者如何在 Tomcat 上 运行 在测试用例之前使用模拟的 类 应用程序?
有一个教程向您展示如何使用 Maven 启动 tomcat 的嵌入式实例,并使用 RestAssured 针对您的服务进行 运行 测试:
您在一个 shell 中开始 tomcat 并在另一个 运行 中开始您的测试。
但是,我强烈建议使用透明地启动嵌入式容器的 jersey 测试框架。在这种情况下,您根本不会使用 RestAssured,而是使用 jersey 测试客户端。您的测试将 运行 更快、更轻松。此处有详细记录:https://jersey.github.io/documentation/latest/test-framework.html。本教程还演示了这种方法,尽管在我看来客户端构建不正确。
过去,我还通过直接调用实现 class 方法来测试 REST 资源。虽然这没有测试 http 查询 parameters/body 到 java 方法参数的正确映射,但它通常就足够了(尤其是当我还在编写客户端代码时)。
我有需要测试的 REST 网络服务。我正在使用 Mockito 模拟 DAO 类,并使用 RestAssured 通过 URI 测试 REST 方法。有没有什么方法可以测试 REST 服务而无需 运行 将其与 Tomcat 分开?或者如何在 Tomcat 上 运行 在测试用例之前使用模拟的 类 应用程序?
有一个教程向您展示如何使用 Maven 启动 tomcat 的嵌入式实例,并使用 RestAssured 针对您的服务进行 运行 测试:
您在一个 shell 中开始 tomcat 并在另一个 运行 中开始您的测试。
但是,我强烈建议使用透明地启动嵌入式容器的 jersey 测试框架。在这种情况下,您根本不会使用 RestAssured,而是使用 jersey 测试客户端。您的测试将 运行 更快、更轻松。此处有详细记录:https://jersey.github.io/documentation/latest/test-framework.html。本教程还演示了这种方法,尽管在我看来客户端构建不正确。
过去,我还通过直接调用实现 class 方法来测试 REST 资源。虽然这没有测试 http 查询 parameters/body 到 java 方法参数的正确映射,但它通常就足够了(尤其是当我还在编写客户端代码时)。