SpringBoot单元测试

单元测试优点

1.可以非常简单,直观,快速的测试某一个功能是否正确

2.可以帮我们再打包的时候,发现一些问题。因为再打包之前,所有的单元测试必须通过,否则无法打包

3.单元测试不会污染数据库,可以再不对数据库进行任何改变的情况下进行测试(比如测试mybaits)

在测试方法中加上 @Transactional 注解,在执行完之后进行回滚,于是避免了污染数据库

单元测试步骤

1.springboot自动添加了 测试框架 的依赖

2.生成单元测试的类(Tips:一定要在方法名称上右键,否则是不会出现 Test 这个选项的)生成了一个空方法。

SpringBoot单元测试_第1张图片

SpringBoot单元测试_第2张图片

 SpringBoot单元测试_第3张图片

3.在单元测试的类上加上 @SpringBootTest 注解SpringBoot单元测试_第4张图片

4.添加业务代码

常用断言

常用断言
方法 说明
assertEquals 判断两个对象或两个原始类型是否相等
assertNotEquals 判断两个对象或两个原始类型是否不相等
assertSame 判断两个对象引用是否指向同一个对象
assertNotSame 判断两个对象引用是否指向不同的对象
assertTrue 判断给定的布尔值是否为True
assertFalse 判断给定的布尔值是否为False
assertNull 判断给定的对象引用是否为null
assertNotNull 判断给定的对象引用是否不为null

科学版 idea 报错问题分析

SpringBoot单元测试_第5张图片

 

@Mapper 来自 mybaits 框架

@Autowired 来自 spring 框架

@Resource 来自于JDK

虽然使用 @Autowired 会报错,但是能正常运行

 结论:@Autowired 来自 Spring,@Mapper 来自 Mybaits ,所以有可能出现不兼容的问题。解决方法:使用 @Resource 注解

一些注解

@SpringBootTest:加在测试类上,表示当前测试运行在 spring boot 环境下

@MockBean:在测试的时候,不需要真正的去执行  bean 下的操作

你可能感兴趣的:(spring,boot,单元测试,java)