【发布时间】:2018-06-26 13:12:00
【问题描述】:
我正在为一个简单的控制器编写测试。
控制器检查模型属性“ADDED_OBJECT”是否存在,并在模型属性缺失时返回成功页面和错误页面。 测试错误路径没有问题,但我不知道如何触发成功路径,通常在成功的 POST (Post/Redirect/Get) 模式之后执行。 是否可以将模型属性添加到 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"))));
}
谢谢
【问题讨论】:
-
在这里查看我的答案。尽管问题不同,但解决方案是相同的stackoverflow.com/questions/48156808/…
-
我想我明白你的意思了。但是当我这样尝试时我无法让它工作:Model mockModel = mock(Model.class); when(mockModel.containsAttribute(ADDED_OBJECT)).thenReturn(true);
-
你遇到了什么错误
-
模型只是空的
标签: spring testing mockmvc modelattribute