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

springboot 单元测试-各个模块举例

controller单测

 import com.fasterxml.jackson.databind.ObjectMapper; 
import lombok.SneakyThrows;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
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.setup.MockMvcBuilders;import java.util.ArrayList;
import java.util.List;import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;@WebMvcTest(DemoFacade.class)
@RunWith(MockitoJUnitRunner.class)
public class DemoFacadeTest {@InjectMocksprivate DemoFacade demoFacade;@Autowiredprivate MockMvc mockMvc;@Mockprivate DemoQryAPI demoQryAPI; // DemoFacade 里的注入的一个类@Beforepublic void init() {// 开启mockMockitoAnnotations.initMocks(this);// 测试方法执行前,初始化MockMvcmockMvc = MockMvcBuilders.standaloneSetup(demoFacade).build();}@Autowiredprivate ObjectMapper objectMapper;@SneakyThrows@Testpublic void selectAll() {PaginationResult<List<DemoQryResp>> obj2 = new PaginationResult();Mockito.when(demoQryAPI.selectAll(Mockito.any())).thenReturn(obj2);obj2.setCode("000000"); String contentParam = "{}"; //jsonmockMvc .perform(MockMvcRequestBuilders.post("/xx/select").contentType(MediaType.APPLICATION_JSON).content(contentParam)).andExpect(status().isOk()) ;}
}

mapper单测

测试自定义的sql对不对


import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;import javax.sql.DataSource;import static org.junit.Assert.*;
//需要加载的配置
@SpringBootTest(classes = {DataSourceAutoConfiguration.class
, MybatisPlusAutoConfiguration.class,DataSource.class, SqlSessionFactory.class})
@MapperScan(basePackageClasses = DemoMapper.class)
@RunWith(SpringRunner.class)
@ActiveProfiles("mysql") // application-mysql.yml
public class DemoMapperTest { @Autowiredprivate DemoMapper demoMapper;@Testpublic void flushCheckingDetail() {demoMapper.flushCheckingDetail(); }}

 普通类的单测

@RunWith(MockitoJUnitRunner.class)
public class DemoTest {@InjectMocksDemo demo;/*** 测试*/@Testpublic void cal() {List<Integer> list=new ArrayList<>(); list.add(2);list.add(2);Integer sum  = demo.cal(list);  Assertions.assertThat(sum).isEqualTo(4);  }
}

注意:单测主要是测这个方法行不行,集中在这个最小单元,测试快熟,有利于代码的迭代升级,减少bug


http://www.mrgr.cn/news/65794.html

相关文章:

  • 使用TensorFlow进行图像分类
  • Docker篇(容器的备份与迁移)
  • ONLYOFFICE 文档8.2更新评测:PDF 协作编辑、性能优化及更多新功能体验
  • 类被加载到jvm后再被注册到Spring中
  • Rust 力扣 - 54. 螺旋矩阵
  • 深入 Prometheus 监控生态 - 第六篇:与 Grafana 实现系统全面监控(健康状态和任务状态看板)
  • 爱奇艺大数据多AZ统一调度架构:打破数据孤岛,提升效率
  • windows——病毒的编写
  • Fish Agent:集成 ASR 和 TTS 的端到端语音处理模型,支持多语言转换
  • 单体架构的 IM 系统设计
  • 【教学类-12-10】20241104《连连看竖版6*6 (3套题目空心图案)中2班
  • 泛微开发修炼之旅--53ecology表单转pdf源码修改相关(表单转pdf时可以修改最后生成的pdf的内容)
  • mysql5安装
  • 数字证书的简单记录
  • 基于SpringBoot司机信用评价的货运管理系统【附源码】
  • Windows无法访问\\192.168.1.156,错误代码0x800704cf
  • 11.4OpenCV_图像预处理习题02
  • Python 继承、多态、封装、抽象
  • 字符串算法
  • Android CCodec Codec2 (十九)C2LinearBlock
  • 【软考】反规范化技术
  • Python 类和对象
  • MeetingMind:AI 会议助手,支持自动转录音频并提取会议中的关键信息
  • 408 计算机组成原理、操作系统:异常和中断的总结
  • GESP4级考试语法知识(计数排序-桶排序)
  • 管易到金蝶销售数据集成全流程详解