Как проверить RestService (клиент) с MockRestServiceServer? - PullRequest
0 голосов
/ 01 июля 2019

Я получил службу REST-запросов для отправки GET-запросов на внешние API.Этот класс является следующим.Всякий раз, когда я пытаюсь запустить тест, чтобы проверить, успешен ли запрос, я получаю следующую ошибку:

Ожидается дальнейший запрос, оставляя 1 неудовлетворенное ожидание (я).0 выполнено запросов

Кто-нибудь получил представление о том, что происходит или как улучшить этот тест?

@Slf4j
@Service
public class APIrequestService {

    @Autowired
    RestTemplate restTemplate;

    @Async
    public String request(int id, String url, String endpoint) {
        String fullUrl = url + endpoint;
        log.debug(fullUrl);
        String idVar = Integer.toString(id);
        log.debug("Studentid");
        try{

            return restTemplate.getForObject(fullUrl, String.class, idVar);
        }
        catch (HttpClientErrorException | HttpServerErrorException httpClientOrServerExc) {
            if (HttpStatus.NOT_FOUND.equals(httpClientOrServerExc.getStatusCode())) {
                return "Student not found in system";
            }
            return "Not known error";
        }
    }


    @Bean
    public RestTemplate restTemplate(RestTemplateBuilder restTemplateBuilder) {
        return restTemplateBuilder.build();
    }

}

Мой тест - следующий класс:

 RunWith(SpringRunner.class)
    public class APIRequestServiceTest {

        @TestConfiguration
        static class RequestServiceContextConfiguration {
            @Bean
            @Qualifier("TestService")
            public APIrequestService apiRequestService() {
                return new APIrequestService();
            }
        }

        @Qualifier("TestService")
        @Autowired
        APIrequestService apIrequestService;

        @MockBean
        private RestTemplate restTemplate;

        private MockRestServiceServer mockRestServiceServer;

        @Before
        public void setUp() {
            RestGatewaySupport gatewaySupport = new RestGatewaySupport();
            gatewaySupport.setRestTemplate(restTemplate);
            mockRestServiceServer = MockRestServiceServer.createServer(gatewaySupport);
        }

        @Test
        public void testGetResponseWhenRequest() {
            mockRestServiceServer.expect(once(), requestTo("https://my-json-server.typicode.com/tijn167/fakejsonapi/student/2102241"))
            .andRespond(withSuccess("", MediaType.APPLICATION_JSON));

            String result = apIrequestService.request(2102241, "https://my-json-server.typicode.com/tijn167/fakejsonapi", "/student" );
            System.out.println(result);
            mockRestServiceServer.verify();
            assertEquals("{student: 210221}", result);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...