Тест MockMvc возвращает 404 вместо 200 без начального/в URL

С Spring boot 1.5.9 и последующими версиями:

@RunWith(SpringRunner.class)
@AutoConfigureMockMvc
@SpringBootTest
public class BigPoolControllerMockMvcTest {

    @Autowired
    private MockMvc mockMvc;

    @Before
    public void initialize() {
    }

    @Test
    public void testGetDisplayPools() throws Exception {
        this.mockMvc.perform(get(CONTROLLER_PATH + DISPLAY_POOLS_API + "?param=abc")
                .contentType(MediaType.APPLICATION_JSON_UTF8))
                .andDo(print()).andExpect(status().isOk());
    }


}

Я продолжаю получать: WARN o.s.web.servlet.PageNotFound - не найдено сопоставление для HTTP-запроса с URI [api/v1/app/pool] в DispatcherServlet с именем ''


person Tuhin Kanti Sharma    schedule 12.01.2018    source источник


Ответы (1)


Оказывается, URL-адрес должен начинаться с «/», чтобы запрос mockmvc мог его найти:

  @Test
    public void testGetDisplayPools() throws Exception {
        this.mockMvc.perform(get("/" + CONTROLLER_PATH + DISPLAY_POOLS_API + "?amazonRegionCode=us-west-1")
                .contentType(MediaType.APPLICATION_JSON_UTF8))
                .andDo(print()).andExpect(status().isOk());
    }

Ведущий "/" работает. Благодаря этому сообщению: https://blmte.com/computer-internet-technology/2416430_spring-test-returning-404-instead-of-200-in-testing-rest-api-in-spring-boot

person Tuhin Kanti Sharma    schedule 12.01.2018