有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Spring:测试使用ViewControllerRegistry创建的ViewController。addViewController()

这是我第一次进行junit测试,所以如果这是一个愚蠢的问题,请原谅我。下面是我希望测试的SpringWeb应用程序中的类。该类扩展WebMCVConfigureAdapter以添加视图控制器

我只想测试每个视图控制器是否映射到正确的视图。在我看过的每一个教程中,测试都是针对一个有自己独立类的控制器进行的。下面的控制器拥有自己的类是没有意义的,因为其中没有逻辑。有人能告诉我该怎么做,或者给出示例代码吗?像这样只链接到视图的控制器需要测试吗

@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");
}

}


共 (1) 个答案

  1. # 1 楼答案

    这取决于您正在实施的测试类型。对于单元测试,这是不必要的,因为您将测试弹簧的内部工作。然而,对于集成测试来说,它是必要的,这样您就可以检查应用程序是否正确连接

    视图控制器的集成测试示例如下:

    @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"));
        }
    }