Junit单元测试简单使用
第一步:pom文件引入相关文件
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>${spring.boot.version}</version>
<scope>test</scope>
</dependency>
第二步:创建测试类并添加@SpringBootTest注解,如果不需要注入springbean可以不加入注解(比如下文的foodRest)
第三步:编写相关测试方法并在方法上加上@Test注解,@DisplayName注解可以取一个测试别名
@SpringBootTest
@Slf4jpublic class FoodRestTest {
@Autowired
private FoodRest foodRest; @Test
@DisplayName("新增食物")
void add() {
FoodDTO foodDTO = new FoodDTO();
foodDTO.setType("面食");
foodDTO.setName("炸酱面");
Result<FoodVO> add = foodRest.add(foodDTO);
System.out.println(add.getData().toString());
System.out.println(System.currentTimeMillis());
} @Test
@DisplayName("获取所有食物")
void findAll() {
Result<List<FoodVO>> all = foodRest.findAll();
for (FoodVO datum : all.getData()) {
System.out.println(datum);
}
System.out.println(System.currentTimeMillis());
}
}
运行结果

在默认情况下,运行顺序是按照方法名的hashcode顺序执行的,先执行findAll(),再执行add(),但是有的时候我们需要按顺序执行,比如上图,却没有拿到数据,所有我们需要先执行add(),再去执行findAll()。
我们有多种方法实现:
- 按执行顺序重新给测试方法命名(不推荐)
- 设置方法执行顺序,添加@TestMethodOrder(value=“”)注解,有以下选项:
- MethodOrderer.OrderAnnotation.class(推荐),配合@Order注解使用,根据Order的优先级执行,值越小优先级越大
- MethodOrderer.MethodName.class,根据方法名称字典顺序执行
- MethodOrderer.DisplayName.class,根据别名字典顺序执行
- MethodOrderer.Random.class,随机顺序执行
- 自定义MethodOrderer接口的实现类,重写orderMethods方法
public class MyMethodOrderer implements MethodOrderer {
@Override
public void orderMethods(MethodOrdererContext methodOrdererContext) {
List<? extends MethodDescriptor> methodDescriptors = methodOrdererContext.getMethodDescriptors();
//自定义排序逻辑
System.out.println();
}
}
@SpringBootTest
@Slf4j
@TestMethodOrder(value = MethodOrderer.OrderAnnotation.class)
public class FoodRestTest {
@Autowired
private FoodRest foodRest; @Test
@Order(1)
@DisplayName("新增食物")
void add() {
FoodDTO foodDTO = new FoodDTO();
foodDTO.setType("面食");
foodDTO.setName("炸酱面");
Result<FoodVO> add = foodRest.add(foodDTO);
System.out.println(add.getData().toString());
System.out.println(System.currentTimeMillis());
} @Test
@Order(2)
@DisplayName("获取所有食物")
void findAll() {
Result<List<FoodVO>> all = foodRest.findAll();
for (FoodVO datum : all.getData()) {
System.out.println(datum);
}
System.out.println(System.currentTimeMillis());
}
}
运行结果,按照顺序执行,我们就取到对应的数据了

Junit单元测试简单使用的更多相关文章
- JUnit单元测试框架的使用
http://blog.csdn.net/mao520741111/article/details/51462215 原文地址 http://www.open-open.com/lib/view/op ...
- 单元测试系列:JUnit单元测试规范
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6762032.html Junit测试代 ...
- JUnit单元测试教程(翻译自Java Code Geeks)
JUnit单元测试教程--终极指南 JUnit单元测试教程终极指南 说明 单元测试简介 1 什么是单元测试 2 测试覆盖 3 Java中的单元测试 JUnit简介 1 使用Eclipse实现简单JUn ...
- springmvc 项目完整示例02 项目创建-eclipse创建动态web项目 配置文件 junit单元测试
包结构 所需要的jar包直接拷贝到lib目录下 然后选定 build path 之后开始写项目代码 配置文件 ApplicationContext.xml <?xml version=" ...
- 单元测试系列之三:JUnit单元测试规范
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6762032.html Junit测试代 ...
- Junit 单元测试、BeanUtils、Properties类
一. Junit单元测试 1.1. Junit单元测试框架的基本使用 一.搭建环境: 导入junit.jar包(junit4) 二.写测试类: 0,一般一个类对应一个测试类. 1,测试类与被测试类最好 ...
- Junit单元测试多线程的问题
今天下午很快完成了一个接口的监控功能,然后屁颠屁颠地用Junit开始单元测试.然后我就开始陷入崩溃的边缘... 监控结束后需要将监控结果以邮件的形式发送给运营的小伙伴维护,前面测试还是很顺利,到了开多 ...
- Java反射学习总结终(使用反射和注解模拟JUnit单元测试框架)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 本文是Java反射学习总结系列的最后一篇了,这里贴出之前文章的链接,有兴趣的可以打开看看. ...
- Junit单元测试、反射、注解
Junit单元测试: * 测试分类: 1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值. 2. 白盒测试:需要写代码的.关注程序具体的执行流程. * Junit使用:白盒测试 * 步 ...
- 基础-Junit单元测试_反射_注解
一.Junit单元测试 1.1 测试分类: 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值. 白盒测试:需要写代码的.关注程序具体的执行流程. 1.2 Junit使用(白盒测试) 使用步 ...
随机推荐
- Python3+Selenium3自动化测试-(准备)
Python3+Selenium3自动化测试-(准备) 最近在学习selenium自动化测试相关的内容,所以将实际准备情况做一记录, # 系统:win10(64位) # 浏览器:Chrome(67.0 ...
- 安装nginx并配置nginxscript(njs)实现请求头验证或者分流
本文以centos为例 nginx+nginxscript 源码安装nginx 安装必要环境 安装gcc环境 sudo yum -y install gcc gcc-c++ 安装 pcre,让ngin ...
- Add All&shuffle-sort(List)
Add All&shuffle Collections常用功能 java.utils.collections是集合工具类,用来对集合进行操作.部分方法如下︰ public static < ...
- 【转】查看iOS崩溃日志
我们在进行iPhone应用测试时必然会在"隐私"中找到不少应用的崩溃日志,但是不会阅读对于很多人来说简直头疼.在此小编为大家详细介绍一下具体的阅读方法,希望大家可以更快的定位BUG ...
- C#后缀表达式解析计算字符串公式
当我们拿到一个字符串比如:20+31*(100+1)的时候用口算就能算出结果为3151,因为这是中缀表达式对于人类的思维很简单,但是对于计算机就比较复杂了.相对的后缀表达式适合计算机进行计算. 我们就 ...
- JZOJ 5353. 【NOIP2017提高A组模拟9.9】村通网
题目 为了加快社会主义现代化,建设新农村,农夫约(Farmer Jo)决定给农庄里每座建筑都连上互联网,方便未来随时随地网购农药. 他的农庄很大,有N 座建筑,但地理位置偏僻,网络信号很差. 一座建筑 ...
- ASAS-CoMoSpA研究: 评价SpA不同分类标准的表现
ASAS-CoMoSpA研究: 评价SpA不同分类标准的表现 EULAR2015; PresentID: OP0037 THE PERFORMANCE OF DIFFERENT CLASSIFICAT ...
- log 函数
什么是对数 对数用 log 符号来表示.根据底数的不同,log 可以变换成 lg.ln.lg 是以 10 为底的对数,ln 是以 e 为底的对数. logax=y,是一个以 a 为底,x 为真数的对数 ...
- LeetCode-440 字典序的第K小数字
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/k-th-smallest-in-lexicographical-order 题目描述 给定整数 ...
- torch.nn.Embedding使用详解
torch.nn.Embedding: 随机初始化词向量,词向量值在正态分布N(0,1)中随机取值.输入:torch.nn.Embedding(num_embeddings, – 词典的大小尺寸,比如 ...