【问题标题】:MockMVC tests how can I verify the answerMockMVC 测试如何验证答案
【发布时间】:2018-05-19 11:31:45
【问题描述】:

我在mockMVC中有如下测试方法

我需要改进测试以使其有意义。 目前测试不是测试,如何改进测试?只需添加数据合规性验证?如何添加它?数据验证验证的例子是什么? 如何测试UUID是否同意?

如何改进这些测试?

【问题讨论】:

    标签: spring-boot junit mocking mockito mockmvc


    【解决方案1】:

    你可以这样做:

    @Test
    public void createUser() throws Exception {
        User user = userRepository.save(new User("testname", "testemail", 10));
        String userJson = toJson(user);
    
        this.mockMvc.perform(post("/user/add/")
                .contentType(contentType)
                .content(userJson))
                .andExpect(status().isCreated());
    }
    

    @Test
    public void getUserById() throws Exception {
        User user = userRepository.save(new User("testname", "testemail", 10));   
        mockMvc.perform(get("/user/" + user.getId()))
                .andExpect(status().isOk())
                .andExpect(content().contentType(contentType))
                .andExpect(jsonPath("$.id", is(user.getId())))
                .andExpect(jsonPath("$.username", is(user.getUsername())))
                .andExpect(jsonPath("$.age", is(user.getAge())))
                .andExpect(jsonPath("$.emailAddress", is(user.getEmailAddress())));
    }
    

    你可以在我的github repo查看整个测试类

    希望对你有帮助

    【讨论】:

    • 我有一个错误 java.lang.AssertionError: No value at JSON path "$.version" at org.springframework.test.util.JsonPathExpectationsHelper.evaluateJsonPath(JsonPathExpectationsHelper.java:290) at org. springframework.test.util.JsonPathExpectationsHelper.assertValue(JsonPathExpectationsHelper.java:74) at org.springframework.test.web.servlet.result.JsonPathResultMatchers.lambda$value$0(JsonPathResultMatchers.java:87) at org.springframework.test.web .servlet.MockMvc$1.andExpect(MockMvc.java:179)
    • 我添加了 .andExpect(jsonPath("$.version", is("0.1"))) .andExpect(jsonPath("$.email", is(accountCreatedDTO .getEmail()))) .andExpect(jsonPath("$.name", is(accountCreatedDTO .getName())))
    • 尝试打印返回的 json 看看发生了什么
    • 在 org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:83) 在 org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java: 26) 在 org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86) 在 org.springframework.test.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75) .springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
    • 引起:net.minidev.json.parser.ParseException:文件位置 63963 意外结束:net.minidev.json.parser.JSONParserMemory.readString(JSONParserMemory.java:122) 处为空.minidev.json.parser.JSONParserBase.readObject(JSONParserBase.java:526) 在 net.minidev.json.parser.JSONParserBase.readMain(JSONParserBase.java:403) 在 net.minidev.json.parser.JSONParserBase.readObject(JSONParserBase .java:546) 在 net.minidev.json.parser.JSONParserBase.readMain(JSONParserBase.java:403) 在 net.minidev.json.parser.JSONParserBase.readObject(JSONParserBase.java:546)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-02
    • 2020-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多