有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    是的,在Java中有几种方法可以做到这一点

    没有太多细节,我建议看一下betamax——它记录了任何网络集成,并保存下来供以后重播。您可以在需要实时运行或使用录音的地方传入。(在一个项目中,我们在CI环境中针对真实服务器运行,但在本地运行测试时使用了版本控制录制。)

    SoapUI是另一个能够模拟web服务器的工具。如果您使用WSDL和/或SOAP,这可能是一个不错的选择。(可怜的你!:-)外面有很多这样的休息选择,但我脑子里却没有

    一个简单的替代方法是运行pythonssimplehttp服务器:python -m SimpleHTTPServer 8888。它只服务于它启动的目录中的任何内容。把你的回复作为文件放在那里,你就可以开始了。(处理简单的东西,但如果标题等很重要,则效果不太好。也不擅长模拟失败的调用。)

    最后,如果您对根本不进行web调用感到满意,那么可以在内部进行模拟。如果您使用像Spring这样的依赖注入框架,那么很容易运行一个版本,该版本包含模拟的后端调用实现,而不是真实的后端调用