возвратил ResponseEntity «ноль» при заглушении вызова клиента OpenFeign - PullRequest
0 голосов
/ 31 октября 2019

У меня есть этот класс тестирования (для тестирования по контракту):

@RunWith(SpringRunner.class)
@SpringBootTest(classes = {ServiceApplication.class})
@AutoConfigureMockMvc
@AutoConfigureWireMock(port = 0, stubs = "classpath*:/META-INF/**/mappings/**/*.json")
@ActiveProfiles({"local", "mock"})
@DirtiesContext
public abstract class ContractBase {

    @Autowired
    private MockMvc mvc;

    @MockBean
    private DocSolIngestionInterface docSolIngestionInterface;

    @MockBean
    private DocSolRequest docSolRequest;

    @Before
    public void test() {
        RestAssuredMockMvc.mockMvc(this.mvc);

        Mockito.when(docSolIngestionInterface.postDocSolRequest(docSolRequest))
                .thenReturn(ResponseEntity.ok().header("content-type", "application/json; charset=UTF-8").body(createDocSolResponseMock()));
    }

Вызов метода, с которым у меня возникают проблемы, заключается в следующем методе в моем контроллере REST:

@Override
    public ResponseEntity<DocSolResponse> postAssessment(@RequestBody final Assessment body) {

DocSolRequest docSolRequest = mapDocSolRequest.buildDocSolRequestModel(body);

HERE---> ResponseEntity<DocSolResponse> docSolResponse docSolIngestionInterface.postDocSolRequest(docSolRequest); 

return docSolResponse;
}

docSolIngestionInterface - это простой клиент OpenFeign.

Когда я пытаюсь заглушить это с помощью вышеуказанного метода в моем тестовом классе: Mockito.when(docSolIngestionInterface.postDocSolRequest(docSolRequest)) .thenReturn(ResponseEntity.ok().header("content-type", "application/json; charset=UTF-8").body(createDocSolResponseMock())); возвращает null. Однако, когда я печатаю его на консоли в моем тестовом методе, он печатает все тело так, как я ожидал.

createDocSolResponseMock() - это локальный метод в моем тестовом классе, который просто создает мой POJO. Эти объекты serializable.

Я понятия не имею, почему, когда я пытаюсь заглушить это docSolRequest, это всегда null.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...