集成测试:spring mvc测试框架post方法

时间:2013-03-27 21:28:17

标签: spring spring-mvc integration-testing

spring 3.2引入了spring mvc测试框架并使其成为它的正式部分,如文档中所述,我想用它来测试我的控制器,这是一种处理发布请求的方法。

68     @RequestMapping(value = "/new", method = RequestMethod.POST)
69     public String addCarPost(@Valid @ModelAttribute NewCar car, BindingResult result){
70         if(result.hasErrors())
71         {
72             return "newcar" ;
73         }             
74         carService.addCar(car) ;        
75         return "redirect:/garage" ;     
76     }

这是我的第一次尝试:

30 @RunWith(SpringJUnit4ClassRunner.class)
31 @ContextConfiguration("test-config.xml")
32 @WebAppConfiguration
33 public class GarageIntegrationTest {
       // ....
72     @Test public void testAddCarPost() throws Exception{
           // i didn't add any parameters to request.
73         this.mockMvc.perform(post("/garage/new"))
74             .andExpect(view().name("newcar")) ;
75     }
       // ....
    }

我想测试@ Valid,@ RequestMapping和@ModelAttribute,我没有添加任何参数来请求,因此实例化了一个新的NewCar()类,该类的所有属性都被初始化为null或者0,所以验证器必须检测到新实例有错误并返回视图“newcar”,当我运行此测试时,我在服务carService中有一个NullPointerException,它的行为就像result.hasErrors()已经返回{ {1}},我错过了一些东西。

0 个答案:

没有答案