2016-05-18 29 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")); 
    } 
}