在 JUnit 测试用例中使用 Try Catch

最初,我在 Java Spring Boot Junit 测试用例中使用MockMvc。如果消息不成功,我将发送一个带有消息的 JSON 成功{"message": "Success"},而不会抛出 AssertionError 异常。它应该检查 catch 块下的消息失败语句。


不添加catch块语句,有没有什么可行的方法可以将Success,Failure场景组合在一起。下面的代码解释了我的尝试,


@Test

public void test() throws Exception {

    try {

        result = mockMvc.perform(post("/test/{testId}", "44")

                .contentType(MediaType.APPLICATION_JSON)

                .content("{\"order\": \"desc\"}")

                .accept(MediaType.APPLICATION_JSON)).andExpect(status().is(200))

                .andExpect(jsonPath("message").value("Success"))

                .andReturn();

    } catch (AssertionError e) {


        result = mockMvc.perform(post("/test/{testId}", "44")

                .contentType(MediaType.APPLICATION_JSON)

                .content("{\"order\": \"desc\"}")

                .accept(MediaType.APPLICATION_JSON)).andExpect(status().is(200))

                .andExpect(jsonPath("message").value("Failure"))

                .andReturn();


    }


}


撒科打诨
浏览 379回答 1
1回答

手掌心

试试这个 result = mockMvc.perform(post("/test/{testId}", "44")                 .contentType(MediaType.APPLICATION_JSON)                 .content("{\"order\": \"desc\"}")                 .accept(MediaType.APPLICATION_JSON)).andExpect(status().is(200))                 .andExpect(jsonPath("message").value(org.hamcrest.CoreMatchers.anyOf(is("Failure"), is("Success"))))                 .andReturn();但是我建议您尝试像 Martin 那样将这些测试用例拆分为单独的测试。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java