我正在尝试编写一些集成测试,其中我需要模拟一些 feign 接口并在我的集成测试中将它们与 MockMvc 一起使用。模拟它们并使用 http 状态 200 提供特定结果是没有问题的,并且工作正常。例子
@Test
public void testSomething() throws Exception {
final List<TestDto> testData = Arrays.asList(TEST_DATA_1, TEST_DATA_2);
when(testFeignClient.listSomething(any(), any()))
.thenReturn(Page.<TestDto>builder()
.size(testData.size())
.totalElements(testData.size())
.content(testData)
.build());
mockMvc.perform(
withDefaultRequestHeaders(get("/someTestMethod/find/{testId}", testId)))
.andExpect(status().isOk())
.andExpect(header()
.string(HttpHeaders.CONTENT_TYPE, startsWith(MediaTypes.HAL_JSON_VALUE)))
.andExpect(jsonPath("_embedded.test[0].testId").value(TEST_DATA_1.getId()))
.andExpect(jsonPath("_embedded.test[1].testId").value(TEST_DATA_2.getId()))
.andReturn();
现在我正在寻找一种方法来模拟 feign 界面,这样我就可以模拟 20 倍以外的其他 http 状态代码,例如 404,而不提供(正文)结果。已经搜索了一段时间,但还没有找到任何东西。
有人有想法吗?