Próbuję przetestować nowy projekt Spring MVC. Mam test mijania dla kontrolera domowego obsługującego index.jsp. Próbuję przetestować obsługę statycznych zasobów obsługiwanych przez ResourceHandlerRegistry w moim WebConfig.Jak testować zasoby statyczne obsługiwane przez Spring ResourceHandlerRegistry
Jakieś wskazówki, jak to zrobić poprawnie? Poniżej jest mój kod:
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(classes = {WebConfig.class})
public class HomeControllerTest {
private MockMvc mockMvc;
@Autowired
private WebApplicationContext webApplicationContext;
@Before
public void setUp() throws Exception {
mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext)
.build();
}
@Test
public void testGetHomepage() throws Exception { //passing :)
this.mockMvc.perform(get("/"))
.andExpect(status().isOk())
.andExpect(view().name("index"))
.andExpect(forwardedUrl("/WEB-INF/pages/index.jsp"));
}
@Test
public void testGetResources() throws Exception { // TEST FAILS :(with 404
this.mockMvc.perform(get("resources/css/test.css"))
.andDo(print())
.andExpect(status().isOk())
.andExpect(forwardedUrl("/resources/css/test.css"));
}
}
Wyjście z nadrukiem():
2015-08-28 12:53:09 WARN PageNotFound:1136 - No mapping found for HTTP request with URI [resources/css/test.css] in DispatcherServlet with name ''
MockHttpServletRequest:
HTTP Method = GET
Request URI = resources/css/test.css
Parameters = {}
Headers = {}
Handler:
Type = null
Async:
Async started = false
Async result = null
Resolved Exception:
Type = null
ModelAndView:
View name = null
View = null
Model = null
FlashMap:
MockHttpServletResponse:
Status = 404
Error message = null
Headers = {}
Content type = null
Body =
Forwarded URL = null
Redirected URL = null
Cookies = []