java – 使用MockRestServiceServer模拟REST调用
我正在尝试编写一个JUnit测试用例,用于测试辅助类中的方法.该方法使用REST调用外部应用程序,这是我试图在JUnit测试中模拟的调用. 辅助方法使用Spring的RestTemplate进行REST调用. 在我的测试中,我创建了一个模拟REST服务器并模拟REST模板并将它们实例化为: @Before public void setUp() throws Exception { mockServer = MockRestServiceServer.createServer(helperClass.getRestTemplate()); } 然后我为mock服务器播种,以便在helper方法进行REST调用时它应该返回一个适当的响应: // response is some XML in a String mockServer .expect(MockRestRequestMatchers.requestTo(new URI(myURL))) .andExpect(MockRestRequestMatchers.method(HttpMethod.GET)) .andRespond(MockRestResponseCreators.withStatus(HttpStatus.OK) .contentType(MediaType.APPLICATION_XML) .body(response)); 当我运行我的测试时,helper方法从它所做的REST调用中接收一个空响应,并且测试失败. 帮助程序生成的REST URL具有查询参数,如下所示:“http://server:port/application/resource?queryparam1=value1&queryparam2=value2”. 我已尝试将带有和不带查询参数的URL(“http://server:port/application/resource”)放在“myURL”变量中(以引出匹配以便它返回响应),但无法让模拟服务器返回任何内容. 我试过搜索这种代码的例子,但还没有找到任何看起来像我的场景的东西. Spring版本4.1.7. 在此先感谢您的任何帮助. 解决方法创建MockRestServiceServer实例时,应使用生产代码正在使用的现有RestTemplate实例.因此,尝试将RestTemplate注入到测试中并在调用MockRestServiceServer.createServer时使用它 – 不要在测试中创建新的RestTemplate.(编辑:鲜蔬坊站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Java后台处理Json格式数据的方法
- java servlet手机app访问接口(一)数据加密传输验证
- java实现单链表、双向链表
- 细数Java接口的概念、分类及与抽象类的区别
- httpclient 请求http数据,json转map的实例
- java – 从Windows命令行运行时如何请求JVM垃圾收集(而不是
- java – Eclipse – 基于return或get(Shortcut)声明变量
- java – Spring应用程序中是否应该“一切”进行弹簧管理?
- java – 如何将Generic方法中的参数同时分配给Integer和Cha
- java – Jackson通过删除’is’来重命名原始布尔字段