java springboot测试类虚拟MVC环境 匹配返回值与预期内容是否相同 (JSON数据格式) 版

上文java springboot测试类鉴定虚拟MVC请求 返回内容与预期值是否相同我们讲了测试类中 虚拟MVC发送请求 匹配返回内容是否与预期值相同 但是 让我意外的是 既然没人骂我 因为我们实际开发 返回的基本都是json数据 字符串的接口场景是少数的

我们在java文件目录下创建一个 domain 文件夹

下面创建一个user类

参考代码如下

java 复制代码
package com.example.webdom.domain;

public class user {
    private int id;
    private String name;

    public void setId(int id) {
        this.id = id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }
}

这边 我就设置一下最基本的 id和name 然后声明一下对应的 get set函数

这边 我们 controller 代码更改如下

java 复制代码
package com.example.webdom.controller;

import com.example.webdom.domain.user;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/TextWeb")
public class TestWeb {
    @GetMapping
    public user getById(){
        user user = new user();
        user.setId(1);
        user.setName("数据管理");
        System.out.println("getById is running .....");
        return user;
    }
}

这里 我们直接 new 一个 user类对象 然后 set一下他的id和name

然后接口返回这个对象出去

将测试类 代码改写如下

java 复制代码
package com.example.webdom;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.ResultActions;
import org.springframework.test.web.servlet.ResultMatcher;
import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.ContentResultMatchers;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@AutoConfigureMockMvc
public class WebDomApplicationTests {

    @Test
    void contextLoads(@Autowired MockMvc mvc) throws Exception {
        MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.get("/TextWeb");
        ResultActions action = mvc.perform(builder);
        ContentResultMatchers content = MockMvcResultMatchers.content();
        ResultMatcher result = content.json("{\"id\":1,\"name\":\"数据管理\"}");
        action.andExpect(result);
    }

}

这里 我们因为还是判断内容 所以依旧用content

然后 里面写一个json格式的字符串即可

然后 我们右键测试函数运行

返回的json和这个json串是一样的 自然不会 有什么问题

我们重点还是要看错误的 这里 我爸 name 后面加一个1 让他匹配不上

然后 我们再次右键运行 出错 是我们想要的

这个位置的内容依旧这么给力 依旧告诉你了 到底是那个字段出问题了 name

然后告诉了你区别 可以说 非常只能了

相关推荐
shehuiyuelaiyuehao2 小时前
1计算机是如何工作的
java·计算机网络
letisgo53 小时前
JAVA 高级进阶07篇《@Transactional失效的8个场景:代理机制到传播行为》
java·面试·transactional·spring事务·aop动态代理
水域安全老周3 小时前
水趣钓鱼救生衣专利拆解:两级锁紧如何解决落水人衣分离
java·前端·网络
三8443 小时前
Java 模板注入(FreeMarker) · 02 · 模板引擎与 FreeMarker 语法
java·开发语言·web安全·freemarker
暮雨哀尘4 小时前
Java 基础练习(一):创建类并调用对象
java·开发语言
想要入门的程序猿4 小时前
回调函数学习
java·网络·学习
EatFan4 小时前
Java接入支付宝 JSAPI 支付保姆教程(二):流程讲解与前后端代码讲解
前端·spring boot·后端·微信小程序·小程序·uni-app
泡海椒4 小时前
动态代理核心原理:JQuick-Java接口规则自动生成机制解析
java·开发语言·python
步行cgn4 小时前
Spring 启动报错:BeanFactory not initialized 的原因与解决
java·python·spring
步行cgn5 小时前
Spring 报错:No bean class specified on bean definition 的原因与解决
java·后端·spring