SpringBoot单元测试断言 assertions
断言
断言(assertions)是测试方法中的核心部分,用来对测试需要满足的条件进行验证。这些断言方法都是 org.junit.jupiter.api.Assertions 的静态方法。JUnit 5 内置的断言可以分成如下几个类别:
1、简单断言
2、数组断言
通过 assertArrayEquals 方法来判断两个对象或原始类型的数组是否相等
配置类中
也可以设置异常报文,第一个参数是期望值,第二个参数是实际值
@Test
@DisplayName("数组断言测试")
void testArrayAssertions(){Assertions.assertArrayEquals(new int[]{1,2},new int[]{1,2},"元素不一样");
}
详细步骤:
Spring boot目录结构一般是固定的:
选中要测试的方法体右键:
会弹出新建测试类的框
上面一个是我测试建的,如果要新建应该选第二个:Create New Test…
上面是生成测试类的名称以及测试的一些属性,下面是选择你要放入的待测试的模块:
下面开始上代码:
Spring boot自带的测试基类(启动配置):
package com.ai.rai.group.workflow.application;import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;/*** Project:bean_generator* Author:hangke* Date:2017/1/13* Description://TODO add description here*/
@RunWith(SpringRunner.class)
@SpringBootTest(classes = TestApplication.class)
public class BaseTestApplication
{protected Logger logger = LoggerFactory.getLogger(this.getClass());
}
测试类启动入口(一般都有的,这边也贴一下吧):
package com.ai.rai.group.workflow.application;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;/*** Project:html_template* Author:hangke* Date:2017/3/22* Description://TODO add description here*/
@SpringBootApplication
@ComponentScan(basePackages={"com.ai", "com.asiainfo"})
public class TestApplication
{public static void main(String[] args){SpringApplication.run(TestApplication.class,args);}
}
待测试的Service方法就不贴了,根据自己的实际情况写逻辑就行;
测试类(使用依赖注入):
package com.ai.rai.group.workflow.service.impl;import com.ai.rai.group.workflow.application.BaseTestApplication;
import com.ai.rai.group.workflow.entity.beans.TmWorkInst;
import com.ai.rai.group.workflow.service.IWorkFlowService;
import org.apache.commons.collections.bag.SynchronizedSortedBag;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import sun.tools.jar.Main;import java.util.List;import static org.junit.Assert.*;
@RunWith(SpringJUnit4ClassRunner.class)
public class WorkFlowServiceImpllswTest extends BaseTestApplication {//Service里面Dao用了依赖注入,这便不能用new对象的方式@AutowiredIWorkFlowService workFlowServiceImpl;@Testpublic void selectWorkInstById() {//这个用的之前写好的Service测试,TmWorkInst workInst = new TmWorkInst();List<TmWorkInst> ss = workFlowServiceImpl.selectWorkInstById(workInst);for (TmWorkInst o : ss)System.out.println("==============="+o.toString());}
}
控制台部分信息打印:
加断言
正常的单元测试流程还需要加断言打印日志
加断言可以避免对数据库的误操作,以及缩短测试流程(断言失败就不再执行之后的代码了)
代码:
package com.ai.rai.group.workflow.service.impl;import com.ai.rai.group.workflow.application.BaseTestApplication;
import com.ai.rai.group.workflow.entity.beans.TmWorkInst;
import com.ai.rai.group.workflow.service.IWorkFlowService;
import org.apache.commons.collections.bag.SynchronizedSortedBag;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import sun.tools.jar.Main;import java.util.List;import static org.junit.Assert.*;@RunWith(SpringJUnit4ClassRunner.class)
public class WorkFlowServiceImpllswTest extends BaseTestApplication {//Service里面Dao用了依赖注入,这便不能用new对象的方式@AutowiredIWorkFlowService workFlowServiceImpl;@Testpublic void selectWorkInstById() {TmWorkInst workInst = new TmWorkInst();List<TmWorkInst> ss = workFlowServiceImpl.selectWorkInstById(workInst);//添加断言(判空) assertNull(ss);for (TmWorkInst o : ss)System.out.println("===============" + o.toString());}
}
查看日志:
SpringBoot单元测试断言 assertions相关推荐
- mockito mock void方法_用过举手!SpringBoot 单元测试利器Mockito
Mockito 是一种 Java mock 框架,他主要是用来做 mock 测试的,他可以模拟任何 Spring 管理的 bean.模拟方法的返回值.模拟抛出异常...等,在了解 Mockito 的具 ...
- junit单元测试断言_简而言之,JUnit:单元测试断言
junit单元测试断言 简而言之,本章涵盖了各种单元测试声明技术. 它详细说明了内置机制, Hamcrest匹配器和AssertJ断言的优缺点 . 正在进行的示例扩大了主题,并说明了如何创建和使用自定 ...
- 简而言之,JUnit:单元测试断言
简而言之,本章涵盖了各种单元测试断言技术. 它详细说明了内置机制, Hamcrest匹配器和AssertJ断言的优缺点 . 正在进行的示例扩大了该主题,并说明了如何创建和使用自定义匹配器/断言. 单元 ...
- 基于链路思想的SpringBoot单元测试快速写法
简介:本文更偏向实践而非方法论,所提及的SpringBoot单元测试写法亦并非官方解,仅仅是笔者自身觉得比较方便.效率较高的一种写法.每个团队甚至团队内的每位开发可能都有自己的写法习惯和风格,只要能实 ...
- 单元测试 断言值为null_如何通过使用值断言编写更强大的单元测试
单元测试 断言值为null by Edd Yerburgh 埃德·耶堡(Edd Yerburgh) 如何通过使用值断言编写更强大的单元测试 (How to write more powerful un ...
- Springboot 单元测试结合Jacoco收集单元测试覆盖率
目录 单元测试 Junit 简单例子 mockito Mock 的限制 Powermock maven 引入 注解使用 处理私有方法 mock构造函数 结合Springboot一起使用 各种runne ...
- springboot单元测试类
springboot单元测试类,引入下方jia包 <!--version 依据当前springboot版本即可--> <dependency><groupId>or ...
- SpringBoot单元测试RunWith注解无法解析
关于SpringBoot单元测试RunWith注解没有提示,无法解析,没有导包提示的问题,笔者在此说明一下. 首先说明一下项目的环境 IDE是IDEA 创建项目使用的是Spring Initializ ...
- SpringBoot --- 单元测试(2.1.x及其它版本)
SpringBoot --- 单元测试(2.1.x及其它版本) 1.SrpingBoot 2.1.x 1.1 依赖 1.2 测试 2.SpringBoot 2.2.x及以上 2.1 依赖 2.2 测试 ...
最新文章
- 在xml文件的Preference标签中,用extra给intent标签加参数
- redis生产环境持久化_在SageMaker上安装持久性Julia环境
- NetCore 依赖注入之服务之间的依赖关系
- Service Broker实现发布-订阅(Publish-Subscribe)框架
- mysql 连接字符集_MySQL字符集详解
- Bailian2684 POJ NOI0105-34 求阶乘的和【迭代】
- 使用Ajax.dll前台调用后台方法及错误示例
- Buffer Pool--锁定内存页
- 【python量化】用python搭建一个股票舆情分析系统
- Face2Face: Real-time Face Capture and Reenactment
- 搭建kettle 源码工程报[ui/spoon.xul]找不到错误的解决方案
- 遇到了javah无法访问类的问题
- day 05 random time sys os pickle json re模块 爬取dytt
- OSPF 之 LSA限制
- 海思开发板设置开机自启动方法
- Prim算法的具体实现
- 信号与系统2—关于自然常数e的那些事
- 【JavaScript】什么是JavaScript?
- java暗黑再临-战神之怒_暗黑再临战神之怒
- 考研[*高数*]学习笔记汇总(全)
热门文章
- Flask+Vue搭建系统
- IDEA创建Maven工程Servlet
- python 移动平均函数_「EMA系列之I」如何理解EMA指数移动平均值以及Python实现
- 欧拉回路python
- 在警察领域高级人脸识别技术的一致性
- 关于C++ non-aggregate cannot be initialized错误的解决
- 微服务架构-服务网关(Gateway)-服务网关在微服务中的应用
- 4、弱电工程FTTH网络的分光建设及分光比设计
- 同步 fork(Syncing a fork)
- 小程序/app 商城 源码 发布(包括后台)