fil*_*lup 7 java spring unit-testing spring-mvc
我正在尝试对一个新的Spring MVC项目进行单元测试.我有一个服务于index.jsp的家庭控制器的通过测试.我正在尝试在WebConfig中测试由ResourceHandlerRegistry提供的静态资源.
有关如何正确执行此操作的任何提示?以下是我的代码:
@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"));
}
}
Run Code Online (Sandbox Code Playgroud)
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 = []
Run Code Online (Sandbox Code Playgroud)
小智 0
具有标准配置,如
<mvc:resources mapping="/resources/**" location="/resources/"/>
Run Code Online (Sandbox Code Playgroud)
如果您执行 get“/resources/css/test.css”而不是“resources/css/test.css”,您将取回 css 文件。为何期待前锋?