当前位置:  开发笔记 > 编程语言 > 正文

使用MockMvc声明来自Spring Controller的返回项列表

如何解决《使用MockMvc声明来自SpringController的返回项列表》经验,为你挑选了0个好方法。

我已经设置了一个Spring Boot应用程序,以使用Spring MVC控制器返回项目列表。我有一个弹簧测试,它创建了一个模拟的依赖关系,该依赖关系被连接到Controller中,并且控制器以JSON数组的形式返回了预期的模拟项的列表。

我试图断言内容是正确的。我想断言JSON数组包含预期的列表。我认为尝试将JSON数组解释为java.util.List存在问题。有没有办法做到这一点?

first和second .andExepct()通过,但是hastItems()检查没有通过。我该怎么办,我可以只传递我的List并验证它是否包含在JSON中?我可以想到的替代方法是将JSON转换为我的List并使用“常规java junit断言”进行验证

public class StudentControllerTest extends AbstractControllerTest {

@Mock
private StudentRepository mStudentRepository;

@InjectMocks
private StudentController mStudentController;

private List mStudentList;


@Before
public void setUp() {
    MockitoAnnotations.initMocks(this);

    setUp(mStudentController);

    // mock the student repository to provide a list of 3 students.
    mStudentList = new ArrayList<>();
    mStudentList.add(new Student("Egon Spengler", new Date(), "111-22-3333"));
    mStudentList.add(new Student("Peter Venkman", new Date(), "111-22-3334"));
    mStudentList.add(new Student("Raymond Stantz", new Date(), "111-22-3336"));
    mStudentList.add(new Student("Winston Zeddemore", new Date(), "111-22-3337"));

    when(mStudentRepository.getAllStudents()).thenReturn(mStudentList);
}


@Test
public void listStudents() throws Exception {
    MvcResult result =
        mockMvc.perform(get("/students/list"))
        .andDo(print())
        .andExpect(jsonPath("$", hasSize(mStudentList.size())))
        .andExpect(jsonPath("$.[*].name", hasItems("Peter Venkman", "Egon Spengler", "Raymond Stantz", "Winston Zeddemore")))

        // doesn't work
        .andExpect(jsonPath("$.[*]", hasItems(mStudentList.toArray())))
        // doesn't work
        .andExpect(jsonPath("$.[*]", hasItems(mStudentList.get(0))))

        .andExpect(status().isOk())
            .andReturn();


    String content = result.getResponse().getContentAsString();


}

}

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有