我有需要测试的REST web服务。我使用Mockito模拟DAO类,使用RestAssured通过URI测试REST方法。有没有任何方法可以在不与Tomcat单独运行REST服务的情况下对其进行测试?或者,在测试用例之前,如何在Tomcat上使用模拟类运行应用程序?
有一个教程向您展示了如何使用maven启动tomcat的嵌入式实例,并使用RestAssured对您的服务运行测试:
http://www.hascode.com/2011/09/rest-assured-vs-jersey-test-framework-testing-your-restful-web-services/
你在一个shell中启动tomcat,在另一个shell运行测试。
然而,我强烈建议使用jersey测试框架,它可以透明地启动嵌入式容器。在这种情况下,您根本不会使用RestAssured,而是使用球衣测试客户端。您的测试将运行得更快、更少麻烦。这里有很好的记录:https://jersey.github.io/documentation/latest/test-framework.html.本教程还演示了这种方法,尽管在我看来客户端的构造并不正确。
在过去,我还通过直接调用实现类方法来测试REST资源。尽管这并不能测试http查询参数/body到java方法参数的正确映射,但它通常已经足够了(尤其是当我还在编写客户端代码时)。