0

junit と spring-test api を使用して、Spring MVC コントローラーの JUnit テスト ケースを作成しようとしています。アプリには多くの beanddefinitions があるためLazyInitDefaultBeanDefinitionDocumentReaderCustomContextLoader.

サンプル テスト クラスは次のようになります。

    @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 の両方が必要です。何か不足していますか?より良い解決策はありますか?

4

1 に答える 1