Тест Spring MockMvc: No mapping found for HTTP request with URI

Есть простейший контроллер:

@GetMapping(value = "/ping", produces = "text/plain")
@ResponseBody
public String getPong(HttpServletRequest httpServletRequest) {
    return "pong";
}

С ним все в порядке, он исправно работает. Для него написан не менее простой юнит-тест:

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration({"classpath:configuration/test-healthcheck-context.xml"})
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS)
public class PingTest {

@Autowired
private WebApplicationContext wac;

private MockMvc mockMvc;

@Before
public void before() {
    this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).dispatchOptions(true).build();
}

@Test
public void pingTest () throws Exception {
    MvcResult mvcResult = this.mockMvc.perform(MockMvcRequestBuilders.get("/ping").accept(MediaType.ALL)).andReturn();
    String response = mvcResult.getResponse().getContentAsString();
    Assert.assertEquals(response, "pong");
}

}

Контекст поднимается без ошибок, но тест не проходит, а в консоли выводится следующее:

2020-04-15 12:02:04.189 [INFO ] [o.s.t.web.servlet.TestDispatcherServlet ] [T:main                ] - FrameworkServlet '': initialization completed in 671 ms
2020-04-15 12:02:04.189 [DEBUG] [o.s.t.web.servlet.TestDispatcherServlet ] [T:main                ] - Servlet '' configured successfully
2020-04-15 12:02:04.230 [DEBUG] [o.s.t.web.servlet.TestDispatcherServlet ] [T:main                ] - DispatcherServlet with name '' processing GET request for [/ping]
2020-04-15 12:02:04.232 [DEBUG] [s.w.s.m.m.a.RequestMappingHandlerMapping] [T:main                ] - Looking up handler method for path /ping
2020-04-15 12:02:04.233 [DEBUG] [s.w.s.m.m.a.RequestMappingHandlerMapping] [T:main                ] - Did not find handler method for [/ping]
2020-04-15 12:02:04.233 [WARN ] [o.s.web.servlet.PageNotFound            ] [T:main                ] - No mapping found for HTTP request with URI [/ping] in DispatcherServlet with name ''

Очевидно, что закралась ошибка в конфигурации тестового окружения (так как сам контроллер, как я уже писал, работает). Подскажите, пожалуйста, где может быть ошибка? Спасибо!


Ответы (1 шт):

Автор решения: kostyawh

Причина ошибки в том, что в xml-контексте теста не был указан бин контроллера.

→ Ссылка