我一直在使用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变量?有没有办法列出与模型相关的所有属性?
答案 0 :(得分:0)
该模型是一个带有 myString 键和值null的地图。要使模型大小为零,请不要向其添加任何属性。
您可以拥有1000个属性,全部初始化为null。大小将是1000。