测试驱动开发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"));
    }
}
相关推荐
摇滚侠2 小时前
《SpringBoot 3:入门与应用实战》第 12 章 JDBC 与事务 使用 JdbcTemplate 阅读笔记 32
spring boot·笔记·后端
phltxy2 小时前
C语言操作符详解
java·c语言·算法
步行cgn3 小时前
@Configuration 详解:Spring 配置类的核心注解
java·后端·spring
sunshine22 girl3 小时前
Java学习一 环境配置2 安装和基本使用Idea
java·学习·intellij-idea
嘿嘿-665 小时前
Windows 一键使用 GPT-6 Astra:Codex CLI 配置教程
java·人工智能·windows·gpt·chatgpt·web
策案案案6 小时前
YOLO: 将AI Agents嵌入到IntelliJ IDEA
java·大数据·人工智能·笔记·yolo·microsoft·intellij-idea
辰烨chenye7 小时前
LeetCode Hot 100 题解 · 堆篇
java·算法·leetcode
shehuiyuelaiyuehao8 小时前
算法29,前缀和,除自身以外的数组的乘积
java·数据结构·算法
小刘在重生~8 小时前
Java常用类|String类详解 + BigDecimal精准计算(含面试题)
java·开发语言·python
随遇而安zx8 小时前
【多线程】---JMM 与 volatile 深度解析
java·多线程