2016-05-18 33 views
0

這是我第一次進行junit測試,所以如果這是一個愚蠢的問題,請原諒我。下面是我想要測試的Spring Web應用程序中的類。該類擴展了WebMcvConfigurerAdapter以添加視圖控制器。Spring:使用ViewControllerRegistry.addViewController()創建測試視圖控制器

我只想測試每個視圖控制器是否映射到正確的視圖。在我看過的每個教程中,測試都是針對擁有獨立類的控制器進行的。下面的控制器擁有自己的類是沒有意義的,因爲它們沒有涉及任何邏輯。任何人都可以指導我的方式,我應該這樣或給示例代碼?像這些只與視圖鏈接的控制器甚至需要測試嗎?

@Configuration 
public class MvcConfig extends WebMvcConfigurerAdapter { 

@Override 
public void addViewControllers(ViewControllerRegistry registry) { 
    registry.addViewController("/").setViewName("greeting"); 
    registry.addViewController("/portal").setViewName("portal"); 
    registry.addViewController("/login").setViewName("login"); 
} 

}

回答

0

這取決於測試要實現的類型。因爲你將測試Spring的內部工作,所以對於單元測試來說它沒有必要。但是,對於集成測試的必要性,您可以檢查應用程序的連線是否正確。

集成測試你的視圖控制器的一個例子是

@RunWith(SpringJunitClassRunner.class) 
@ContextConfiguration(classes = MvcConfig.class) 
public class ViewControllerIT{ 

    @Autowired 
    private WebApplicationContext wac; 

    @Before 
    public void setup() { 
     this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build(); 
    } 

    @Test 
    public void testLogin() throws Exception { 
     this.mockMvc.perform(get("/login") 
     .andExpect(status().isOk()) 
     .andExpect(view().name("login")); 
    } 
}