当前位置: 首页 > news >正文

测试驱动开发TDD

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

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 {@Autowiredprivate MockMvc mockMvc;@Autowiredprivate ObjectMapper objectMapper;final private String urlTemplate = "/login";/*** 测试POST请求是否正常处理。* 发送一个JSON格式的POST请求到"/login"路径,并验证返回内容。*/@Testpublic 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"));}
}
http://www.lryc.cn/news/383031.html

相关文章:

  • [论文笔记]Mixture-of-Agents Enhances Large Language Model Capabilities
  • Redis 7.x 系列【6】数据类型之字符串(String)
  • 指针(一)
  • harmony鸿蒙下实现bc交互的方式和方法
  • 【MySQL进阶之路 | 高级篇】索引的声明与使用
  • 探索Java中的设计模式:从单例到工厂模式
  • 表单(forms)
  • Geoserver源码解读四 REST服务
  • 硬件开发笔记(二十一):外部搜索不到的元器件封装可尝试使用AD21软件的“ManufacturerPart Search”功能
  • 【AI大模型】GPTS 与 Assistants API
  • 攻击者开始使用 XLL 文件进行攻击
  • Why RAG is slower than LLM?
  • Word页码设置,封面无页码,目录摘要阿拉伯数字I,II,III页码,正文开始123为页码
  • 汽车汽配图纸管理、产品研发管理解决方案
  • 小程序简单版音乐播放器
  • 驾校预约管理系统
  • C++ 左值右值 || std::move() || 浅拷贝,深拷贝 || 数据类型
  • 发那科机器人IO 分配
  • ubuntu开机怎么进入、退出命令行界面
  • 『FPGA通信接口』LVDS接口(4)LVDS接收端设计
  • 面试题:HTTP的body是二进制还是文本
  • 5分钟带你部署一套Jenkins持续集成环境​
  • OpenAI突然宣布停止向中国提供API服务!
  • Bootstrap 标签
  • EtherCAT主站SOEM -- 37 -- win-soem-win10及win11系统QT-SOEM-1个电机转圈圈-周期同步速度模式(CSV模式)
  • 老板舍不得买库存管理软件❓一招解决
  • 【MySQL数据库】:MySQL视图特性
  • malloc、free和new delete的区别
  • 如何有效地优化 Erlang 程序的内存使用,以应对大规模数据处理的需求?
  • vue3项目使用@antv/g6实现可视化流程功能