测试驱动开发TDD

如何在后端测试代码,测试一个其前端的请求,能否正常处理

以登录请求为例

java 复制代码
package com.example.demo.login;

import com.example.demo.login.pojo.User;
import com.fasterxml.jackson.databind.ObjectMapper;
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.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;

@SpringBootTest
@AutoConfigureMockMvc
public class LoginTest {

    @Autowired
    private MockMvc mockMvc;

    @Autowired
    private ObjectMapper objectMapper;

    final private String urlTemplate = "/login";

    /**
     * 测试POST请求是否正常处理。
     * 发送一个JSON格式的POST请求到"/login"路径,并验证返回内容。
     */
    @Test
    public void testLogin() throws Exception {
        // 创建User对象
        User user = new User("test@qq.com", "123456");

        // 使用Jackson库的ObjectMapper将对象转换为JSON字符串
        String jsonRequest = objectMapper.writeValueAsString(user);

        // 发送一个 POST 请求到 "/login" 路径
        mockMvc.perform(MockMvcRequestBuilders.post(urlTemplate)
                        // 设置请求的 Content-Type 为 JSON 格式
                        .contentType(MediaType.APPLICATION_JSON)
                        // 设置请求体为 JSON 格式的字符串,模拟客户端发送的 JSON 数据
                        .content(jsonRequest))
                // 断言返回的内容包含用户信息
                .andExpect(MockMvcResultMatchers.jsonPath("$.email").value("test@qq.com"))
                .andExpect(MockMvcResultMatchers.jsonPath("$.username").value("urfread"));
    }
}
相关推荐
咩咩啃树皮6 小时前
第40篇:Vue3组件化开发精讲——组件拆分、复用、父子通信、工程化架构
java·前端·架构
鱟鲥鳚6 小时前
Spring Boot 集成 LangChain4j:从模型调用到 Tool Calling(Demo版)
java·spring boot
大模型码小白8 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
腾渊信息科技公司8 小时前
Spring Boot对接MES实战:视觉检测数据自动同步方案
java·人工智能·spring boot·后端·计算机视觉·ai·软件需求
爱笑的源码基地9 小时前
高并发 Redis 缓存门诊HIS系统源码,含财务统计药房进销存
java·程序·门诊系统·诊所系统·云诊所源码
wuqingshun3141599 小时前
TCP超时重传机制是为了解决什么问题?
java
莫逸风12 小时前
【AgentScope 2.0】 0. 学习指南
java·llm·agent·agentscope
隔窗听雨眠12 小时前
Spring Boot在云原生时代的编程范式革新研究
spring boot·后端·云原生
z1234567898612 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
yaoxin52112313 小时前
470. Java 反射 - Member 接口与 AccessFlag
java·开发语言·python