我编写了一个调用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框架进行测试。
答案 0 :(得分:1)
是的,在Java中有几种方法可以做到这一点。
如果没有太多细节我建议查看betamax - 它会记录任何网络集成并保存以供日后重播。您可以传入现场直播或使用录音。 (在一个项目中,我们针对CI env中的真实服务器运行,但在本地运行测试时使用版本控制的记录。)
SoapUI是另一种能够模拟Web服务器的工具。如果您使用WSDL和/或SOAP,这可能是一个不错的选择。 (可怜的你!:-))有很多这样的休息选择,但我不知道它在我的头脑中。
一个简单的替代方法是运行pythons简单的HTTP服务器:python -m SimpleHTTPServer 8888
。它只是服务于它启动的目录中的任何内容。把你的反应放在那里作为文件,你很高兴。 (使用简单的东西,但如果标题等重要不太好。也不擅长模拟失败的调用。)
最后,如果你完全不打网络,你可以在内部进行嘲笑。如果你使用像Spring这样的依赖注入框架,很容易运行一个带有后端调用的模拟实现的版本,而不是真正的版本。