2017-03-01 94 views
0

我已经写了调用REST服务嘲讽REST调用另外一个REST的服务

@RequestMapping(value = { "session" }, method = {RequestMethod.GET) 
    @ResponseBody 
    public String sesionGet(HttpServletRequest request, HttpServletResponse httpServletResponse) { 

      //call rest webservice  
      PostResponse postRequest = IncomeAccessUtils.postRequest(/*call web esrvice*/); 

我需要对代理做一个集成测试,但有时服务器REST代理在其外部Web服务部署在关闭。我可以嘲笑来自web服务调用的响应吗?我正在使用spring-test-mvc和/或rest-assurance框架进行测试。

+1

也许http://wiremock.org/ – 2017-03-01 12:27:49

回答

1

是的有几种方法可以在Java中执行此操作。

没有太多的细节我会建议看看betamax - 它记录任何网络集成并保存它以便以后重播。您可以传入您想要运行的实况或使用录音。 (在一个项目中,我们在CI env中使用真实服务器运行,但在本地运行测试时使用受版本控制的记录。)

SoapUI是另一种能够模拟Web服务器的工具。如果您使用WSDL和/或SOAP,这可能是一个不错的选择。 (可怜你!:-))有很多这样的替代品可供休息,但我的脑子里并没有新鲜的东西。

一个简单的替代方案是运行pythons简单的HTTP服务器:python -m SimpleHTTPServer 8888。它只是在它开始的目录中提供。把你的回应作为文件,你很好。 (使用简单的东西,但如果头等重要不太好,也不擅长模拟失败的调用。)

最后,如果你没有打网络电话的罚款,你可以在里面嘲笑。如果您使用像Spring这样的依赖注入框架,那么使用后台调用的模拟实现而不是真正的运行很容易。