繁体   English   中英

将模型属性添加到Spring MockMvc调用

[英]Adding model attribute to spring MockMvc call

我正在为一个简单的控制器编写测试。

控制器检查是否存在模型属性“ ADDED_OBJECT”,并在缺少模型属性时返回成功页面和错误页面。 测试错误路径是没有问题的,但是我不知道如何触发成功路径,通常在成功的POST(发布/重定向/获取)模式之后执行该成功路径。 是否可以将modelattribute添加到mockMvc调用中?

控制器:

@GetMapping("/added")
public String addedContract(Model model) {
    if (!model.containsAttribute(ADDED_OBJECT)) {
        return ERROR_400;
    }
    return "added";
}

测试:

@Test
public void added() throws Exception {
    mockMvc.perform(get("/added"))
            .andExpect(status().isOk())
            .andExpect(content().string(not(containsString("400"))));
}

谢谢

最简单的方法是像这样设置flashAttribute

 mockMvc.perform(get("/added").flashAttr("ADDED_OBJECT", "SomeObject"))

这样,您可以控制将哪些内容传递给控制器​​中的模型对象,并相应地针对各种用例设计测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM