我已经编写了一个调用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*/);我需要在该代理上进行集成测试,但有时部署外部web服务的服务器会宕机。我可以模拟来自webservice调用的响应吗?我使用spring-test-mvc和/或rest-assure框架进行测试。
发布于 2017-03-01 20:54:11
是的,在Java中有几种方法可以做到这一点。
在没有太多细节的情况下,我建议看看betamax -它记录了所有的网络集成,并保存下来供以后重播。您可以传入您想要实时运行或使用录制的位置。(在一个项目中,我们在CI环境中运行真实服务器,但在本地运行测试时使用版本控制记录。)
SoapUI是另一个能够模拟web服务器的工具。如果您使用WSDL和/或SOAP,这可能是一个很好的选择。(可怜的你!:-) )有很多这样的休息选择,但我对此并不陌生。
一个简单的替代方案是运行pythons simple HTTP server:python -m SimpleHTTPServer 8888。它只提供启动时所在目录中的任何内容。把你的回复作为文件放在那里,你就可以开始工作了。(使用简单的东西,但如果头部等很重要,就不太好了。也不擅长模拟失败的呼叫。)
最后,如果你完全不需要进行web调用,你可以在内部使用mock。如果你使用像Spring这样的依赖注入框架,很容易运行一个带有模拟的后端调用实现的版本,而不是真正的实现。
https://stackoverflow.com/questions/42531673
复制相似问题