我正在尝试使用 junit 和 spring-test api 为 Spring MVC 控制器创建 JUnit 测试用例。由于我的应用程序中有很多 beandefinitions,因此我使用LazyInitDefaultBeanDefinitionDocumentReader
并编写了一个CustomContextLoader
.
我的示例测试类将是:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader=com.xyz.CustomXmlContextLoader.class,
locations={"file:///D:/web-module/src/test/resources/conf/application-config-controller-test.xml"})
@WebAppConfiguration
public class LoginControllerTest {
@Autowired
private WebApplicationContext wac;
private MockMvc mockMvc;
@Test
public void testShowForm_forgetUserID() throws Exception {
System.out.println("webappcontext::"+wac);
mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
mockMvc.perform(get("/login.form")).andExpect(status().isOk());
}
}
在这里,如果我执行上面的代码,wac 不会自动装配,它会返回 null。loader=com.xyz.CustomContextLoader
但如果我从中删除@ContextConfiguration
,它工作正常。
我需要同时拥有延迟加载和 MockMvc 进行测试。我错过了什么吗?有没有更好的解决方案?