1

我正在尝试编写一些集成测试,其中我需要模拟一些 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,而不提供(正文)结果。已经搜索了一段时间,但还没有找到任何东西。

有人有想法吗?

4

0 回答 0