java模拟对另一个restservice的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*/);
我需要在该代理上进行集成测试,但有时部署外部web服务的服务器出现故障。我可以模拟来自webservice调用的响应吗?我正在使用SpringTestMVC和/或RESTAssure框架进行测试
# 1 楼答案
是的,在Java中有几种方法可以做到这一点
没有太多细节,我建议看一下betamax——它记录了任何网络集成,并保存下来供以后重播。您可以在需要实时运行或使用录音的地方传入。(在一个项目中,我们在CI环境中针对真实服务器运行,但在本地运行测试时使用了版本控制录制。)
SoapUI是另一个能够模拟web服务器的工具。如果您使用WSDL和/或SOAP,这可能是一个不错的选择。(可怜的你!:-)外面有很多这样的休息选择,但我脑子里却没有
一个简单的替代方法是运行pythonssimplehttp服务器:
python -m SimpleHTTPServer 8888
。它只服务于它启动的目录中的任何内容。把你的回复作为文件放在那里,你就可以开始了。(处理简单的东西,但如果标题等很重要,则效果不太好。也不擅长模拟失败的调用。)最后,如果您对根本不进行web调用感到满意,那么可以在内部进行模拟。如果您使用像Spring这样的依赖注入框架,那么很容易运行一个版本,该版本包含模拟的后端调用实现,而不是真实的后端调用