2015-08-28 25 views
7

Sto provando a testare un nuovo progetto Spring MVC. Ho un test di passaggio per il controller di casa che serve index.jsp. Sto provando a testare le risorse statiche servite da ResourceHandlerRegistry nel mio WebConfig.Come testare le risorse statiche servite da Spring ResourceHandlerRegistry

Qualche consiglio su come farlo correttamente? Qui di seguito è il mio codice:

@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")); 
} 

} 

uscita da print():

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 = [] 

risposta

0

Con una configurazione standard come

<mvc:resources mapping="/resources/**" location="/resources/"/> 

se si esegue un get "/ risorse/css/test. css "invece di" resources/css/test.css "tornerai sul file css. Perché ti aspetti un attaccante?

Problemi correlati