【发布时间】:2016-03-29 11:57:12
【问题描述】:
我有需要测试的 REST Web 服务。我使用 Mockito 来模拟 DAO 类,使用 RestAssured 来通过 URI 测试 REST 方法。有什么方法可以在不与 Tomcat 单独运行的情况下测试 REST 服务?或者如何在测试用例之前使用模拟类在 Tomcat 上运行应用程序?
【问题讨论】:
标签: testing junit jersey mockito rest-assured
我有需要测试的 REST Web 服务。我使用 Mockito 来模拟 DAO 类,使用 RestAssured 来通过 URI 测试 REST 方法。有什么方法可以在不与 Tomcat 单独运行的情况下测试 REST 服务?或者如何在测试用例之前使用模拟类在 Tomcat 上运行应用程序?
【问题讨论】:
标签: testing junit jersey mockito rest-assured
有一个教程向您展示了如何使用 maven 来启动一个嵌入的 tomcat 实例并使用 RestAssured 对您的服务运行测试:
您在一个 shell 中启动 tomcat,然后在另一个 shell 中运行测试。
但是,我强烈建议使用 jersey 测试框架,它可以透明地启动嵌入式容器。在这种情况下,您根本不会使用 RestAssured,而是使用球衣测试客户端。您的测试将运行得更快、更轻松。这里有很好的记录:https://jersey.github.io/documentation/latest/test-framework.html。本教程还演示了这种方法,尽管在我看来客户端的构造并不正确。
过去我也通过直接调用实现类方法来测试 REST 资源。虽然这并不能测试 http 查询参数/正文到 java 方法参数的正确映射,但通常就足够了(尤其是当我也在编写客户端代码时)。
【讨论】: