我正在使用Spring Boot进行测试(我是Spring Boot的新手),我想在测试阶段模拟我的Rest API脚本,所以我正在使用MockRestServiceServer
创建一个模拟服务器。
现在,每当我运行server.verify()
时,我总是会收到此错误
java.lang.AssertionError: Further request(s) expected leaving 1 unsatisfied expectation(s).
这是我的主要通话方法
@Test
public void call() {
RestTemplate template = Mockito.mock(RestTemplate.class);
server = MockRestServiceServer.createServer(template);
DataParser parser = Mockito.mock(DataParser.class);
RTCValidate validate = Mockito.mock(RTCValidate.class);
NodeExe nodeExe = Mockito.mock(NodeExe.class);
RTCInterpreter interpreter = new RTCInterpreter(parser, validate, nodeExe);
Mockito.when(parser.parse(Mockito.anyString(), Mockito.anyString())).thenReturn("2012-02-08");
server.expect(requestTo("http://vpn.fakemood.com/certmgmt/L1ip?uuid={uuid}")).andRespond(withSuccess("123ABC456", MediaType.TEXT_PLAIN));
server.verify();
}
我不确定为什么此错误,实际的API可以正常工作,实际的代码也可以。该网址也是正确的,但随后哪个期望失败了?
为什么会出现此错误,它实际上是什么意思?
在此先感谢您的帮助
答案 0 :(得分:0)
您声明了expect()
,此后便致电verify()
。 verify()
验证是否确实执行了通过Expect(RequestMatcher)设置的所有预期请求。
您的代码在声明您的期望后立即调用verify()
。没有实现将对服务器进行调用。
请检查此示例,在expect()
和verify()
之间是调用您的例外请求的某些实现。
RestTemplate restTemplate = new RestTemplate()
MockRestServiceServer server = MockRestServiceServer.bindTo(restTemplate).build();
server.expect(manyTimes(), requestTo("/hotels/42")).andExpect(method(HttpMethod.GET))
.andRespond(withSuccess("{ \"id\" : \"42\", \"name\" : \"Holiday Inn\"}", MediaType.APPLICATION_JSON));
Hotel hotel = restTemplate.getForObject("/hotels/{id}", Hotel.class, 42);
// Use the hotel instance...
// Verify all expectations met
server.verify();