在Spring中测试null模型属性

时间:2014-01-28 11:33:40

标签: java spring spring-mvc mockito

我一直在使用Mockito来测试我的Spring控制器方法,但是对于以下失败测试的行为感到困惑:

控制器:

@RequestMapping(value = "/getPage", method = RequestMethod.GET)
public String getPage(Model model) {

    String myString = myService.someMethod();

    model.addAttribute("myString", myString);
    return "myTemplate";
}

测试:

@Test public void testGetPage() throws Exception {

    String myString = null;

    when(mockService.someMethod()).thenReturn(myString);

    mockMvc.perform(get("/getPage"))
        .andExpect(status().isOk())
        .andExpect(model().size(1)) // this passes
        .andExpect(model().attribute("myString", myString))   // fails: "Model attribute 'myString' does not exist 
        .andExpect(model().attributeExists("myString"))    // fails: "Model attribute 'myString' does not exist 
        ;
 }

那么什么是测试检测何时返回model()。size(1)如果不是myString变量?有没有办法列出与模型相关的所有属性?

1 个答案:

答案 0 :(得分:0)

该模型是一个带有 myString 键和值null的地图。要使模型大小为零,请不要向其添加任何属性。

您可以拥有1000个属性,全部初始化为null。大小将是1000。