【问题标题】:java.lang.AssertionError during spring boot testing春季启动测试期间的java.lang.AssertionError
【发布时间】:2019-04-30 09:50:18
【问题描述】:

我正在使用 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 可以正常工作,实际代码也是如此。 URL 也是正确的,但是哪个期望失败了??

为什么会出现此错误,它实际上是什么意思??

提前感谢您的帮助

【问题讨论】:

    标签: spring-boot junit mockito


    【解决方案1】:

    您声明了您的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();
    

    https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/test/web/client/MockRestServiceServer.html

    【讨论】:

    • 好吧,当我调用该方法时它可以正常工作,它显示了相同的错误,所以我将其删除。现在添加它仍然显示相同的错误。
    猜你喜欢
    • 1970-01-01
    • 2016-12-13
    • 1970-01-01
    • 2017-09-25
    • 1970-01-01
    • 2021-08-31
    • 2018-01-21
    • 2019-03-07
    • 1970-01-01
    相关资源
    最近更新 更多