对OpenFeign客户端调用进行存根时,返回ResponseEntity“ n​​ull”

时间:2019-10-31 03:27:30

标签: java spring rest spring-boot

我有这个测试班(用于合同测试):

@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

0 个答案:

没有答案