Testing 在不运行Tomcat的情况下重新启动测试

Testing 在不运行Tomcat的情况下重新启动测试,testing,junit,jersey,mockito,rest-assured,Testing,Junit,Jersey,Mockito,Rest Assured,我有需要测试的RESTWeb服务。我使用Mockito来模拟DAO类,并通过URI重新测试REST方法。有没有办法测试REST服务而不使用Tomcat单独运行它?或者如何在测试用例之前使用模拟类在Tomcat上运行应用程序?有一个教程向您展示了如何使用maven启动Tomcat的嵌入式实例,并使用Restarsured对您的服务运行测试: 在一个shell中启动tomcat,在另一个shell中运行测试 但是,我强烈建议使用jersey测试框架,它可以透明地启动嵌入式容器。在这种情况下,您根本

我有需要测试的RESTWeb服务。我使用Mockito来模拟DAO类,并通过URI重新测试REST方法。有没有办法测试REST服务而不使用Tomcat单独运行它?或者如何在测试用例之前使用模拟类在Tomcat上运行应用程序?

有一个教程向您展示了如何使用maven启动Tomcat的嵌入式实例,并使用Restarsured对您的服务运行测试:

在一个shell中启动tomcat,在另一个shell中运行测试

但是,我强烈建议使用jersey测试框架,它可以透明地启动嵌入式容器。在这种情况下,您根本不会使用restasured,而是使用jersey测试客户机。您的测试将运行得更快,而且不太麻烦。这里有很好的记录:。本教程还演示了这种方法,尽管在我看来,客户端的构造并不正确


在过去,我还通过直接调用实现类方法来测试REST资源。虽然这不能测试http查询参数/正文到java方法参数的正确映射,但通常已经足够了(特别是当我还在编写客户端代码时)。

成功了,谢谢。只剩下1个问题-测试时未调用ExceptionMapper。我将就此主题打开另一个问题。已解决:。只需要在public ResourceConfig configure()中注册我的ExceptionMapper。Karate支持REST测试,而无需运行Tomcat,最好的部分是相同的测试可以与正常的HTTP集成测试重复使用: