Я пытаюсь смоделировать метод, который вызывает мой контроллер, как показано:
@Post(value = "/blah", produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@Transactional
public HttpResponse<Object> createBlah(HttpHeaders httpHeaders,
@Body @Valid CreateBlahRequest createBlahRequest) {
HttpResponse<Object> createBlahResponse;
(...)
createBlahService(...) // what i am trying to mock
return HttpUtils.getResponse(HttpStatus.CREATED, createBlahResponse.body());
}
И в моем тесте я тестирую как показано:
@Mock
public BlahController blahController;
public HttpResponse<Object> resp = HttpResponse.created((Object) new AccountResponse()).status(HttpStatus.OK);
@BeforeAll
public void configureAppContext() {
Application.APPLICATION_CONTEXT = applicationContext;
MockitoAnnotations.initMocks(this);
}
@Test
void createBlah(){
MutableHttpRequest<CreateBlahRequest> request = HttpRequest
.POST("/blah", createBlahRequest)
.header("requestId", "1");
when(blahController.createBlah(eq(request.getHeaders()), eq(createBlahRequest))).thenReturn(resp);
HttpResponse<CreateBlahRequest> blahRes = client.toBlocking().exchange(request, CreateBlahRequest.class);
}
Однако, когда клиент делает при обращении к контроллеру, кажется, не совпадает (когда) внутри моего теста, он продолжает работать как есть. Если кто-нибудь мог бы дать какой-то совет по этому поводу, он был бы очень признателен.