java无法通过junit控制器测试的@Model参数
我有一个针对控制器的junit测试方法,其中我传递了一个@ModelAttribute对象,其中包含填充的“name”字段,如下所示
public void when_GroupEditPostCreateEntityNotFoundException_Then_ErrorMessageCorrect() throws Exception {
GroupDTO groupDto = newGroupDto();
groupDto.setName("JustAnotherName");
int id = groupDto.getId();
when(groupService.create(groupDto)).thenThrow(EntityNotFoundException.class);
String msg = String.format(GROUP_EDIT_POST_ENFE_MSG, id);
this.mockMvc.perform(post("/groupEdit").flashAttr("groupDto", groupDto))
.andDo(print())
.andExpect(flash().attribute("errorMessage", msg));
}
但当我在debug中检查controller方法时,字段是空的
我不知道为什么。有人能解释或给出一些想法吗
# 1 楼答案
问题是我试图传递的属性的名称错误。@modeldattribute名称为“group”,flashAttribute名称为“groupDto”
我把名字改成了“团体”,它成功了