我一直在使用 Mockito 来测试我的 Spring Controller 方法,但对以下失败测试的行为感到困惑:
Controller :
@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
;
}
那么,如果不是 myString 变量,测试在返回 model().size(1) 时检测到什么?有没有一种方法可以列出与模型关联的所有属性?
最佳答案
该模型是一个映射,其键为 myString,值为 null。要使模型大小为零,请不要向其添加任何属性。
您可以有 1000 个属性,所有属性都初始化为 null。大小为 1000。
关于java - 在 Spring 中测试空模型属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21404518/