java.lang.AssertionError во время весеннего тестирования загрузки - PullRequest
0 голосов
/ 30 апреля 2019

Я использую Spring Boot для тестирования (я очень новичок в Spring Boot), я хочу смоделировать мой скрипт API Rest на этапе тестирования, поэтому я использую 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-адрес также правильный, но тогда какое ожидание не удалось ??

Почему я получаю эту ошибку и что она на самом деле означает ??

Заранее благодарю за любую помощь

1 Ответ

0 голосов
/ 02 мая 2019

Вы объявили свой expect() и после этого звоните verify().verify() подтверждает, что все ожидаемые запросы, настроенные с помощью ожидаемого (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

...