有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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方法时,字段是空的

Controller post method

我不知道为什么。有人能解释或给出一些想法吗


共 (1) 个答案

  1. # 1 楼答案

    问题是我试图传递的属性的名称错误。@modeldattribute名称为“group”,flashAttribute名称为“groupDto”

    我把名字改成了“团体”,它成功了