当前位置: 首页 > 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.lryc.cn/news/476657.html

相关文章:

  • MS01SF1 精准测距UWB模组助力露天采矿中的人车定位安全和作业效率提升
  • Android亮屏Job的功耗优化方案
  • React05 样式控制 classnames工具优化类名控制
  • OJ-5G网络建设
  • Linux简介
  • android——渐变色
  • MySQL约束管理
  • 拯救者y7000p 打开XMP
  • 2024 Rust现代实用教程Iterator迭代器
  • 基于SpringBoot司机信用评价的货运管理系统【附源码】
  • 使用PostgreSQL进行高效数据管理
  • 数据库条件查询排查——引号故障
  • Python爬虫:揭开淘宝商品描述的神秘面纱
  • 动态规划— 一和零
  • 【Android】SharedPreferences存储中没有 Double 类型数据存储的解决方式
  • ffmpeg:视频字幕嵌入(GPU加速)
  • DCN网络进行新冠肺炎影像分类
  • C++中的继承——第二篇
  • 动态规划探索篇
  • js中多let与var
  • 基于人工智能的搜索和推荐系统
  • 冷钱包与热钱包的差异 | 加密货币存储的安全方案
  • 014:无人机遥控器操作
  • PCL 点云高度归一化
  • 【Effective C++】阅读笔记4
  • 浅谈mysql【8.0】链接字符串
  • BERT,RoBERTa,Ernie的理解
  • 获取 Wind 数据并进行简单的择时分析
  • 小檗碱的酵母代谢工程生物合成-文献精读78
  • 文件指针和写入操作