java - 在 Spring 中测试空模型属性

标签 java spring spring-mvc mockito

我一直在使用 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/

相关文章:

java - @ConditionalOnProperty on TYPE level w/@Configuration

java - Java根据用户名进行url重定向

java - ElasticSearch Java RestClient - 等待 f 或 [30000] 毫秒后监听器超时

java - 处理许多方法抛出的异常,并在许多类中重写

java - 从 Android Processing Sketch 保存图像

java - 在 Spring 3.1.2 中指定较低的 Jackson 版本

java - 如何使用 Spring RestTemplate 将 Riot Api 请求映射到对象

java - 转调 8XB 位

java - SpringBoot : java. io.FileNotFoundException: 文件系统中无法解析文件[]以检查其内容长度

spring - 带有可选参数的 jpa 查询