断言

断言(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相关推荐

  1. mockito mock void方法_用过举手!SpringBoot 单元测试利器Mockito

    Mockito 是一种 Java mock 框架,他主要是用来做 mock 测试的,他可以模拟任何 Spring 管理的 bean.模拟方法的返回值.模拟抛出异常...等,在了解 Mockito 的具 ...

  2. junit单元测试断言_简而言之,JUnit:单元测试断言

    junit单元测试断言 简而言之,本章涵盖了各种单元测试声明技术. 它详细说明了内置机制, Hamcrest匹配器和AssertJ断言的优缺点 . 正在进行的示例扩大了主题,并说明了如何创建和使用自定 ...

  3. 简而言之,JUnit:单元测试断言

    简而言之,本章涵盖了各种单元测试断言技术. 它详细说明了内置机制, Hamcrest匹配器和AssertJ断言的优缺点 . 正在进行的示例扩大了该主题,并说明了如何创建和使用自定义匹配器/断言. 单元 ...

  4. 基于链路思想的SpringBoot单元测试快速写法

    简介:本文更偏向实践而非方法论,所提及的SpringBoot单元测试写法亦并非官方解,仅仅是笔者自身觉得比较方便.效率较高的一种写法.每个团队甚至团队内的每位开发可能都有自己的写法习惯和风格,只要能实 ...

  5. 单元测试 断言值为null_如何通过使用值断言编写更强大的单元测试

    单元测试 断言值为null by Edd Yerburgh 埃德·耶堡(Edd Yerburgh) 如何通过使用值断言编写更强大的单元测试 (How to write more powerful un ...

  6. Springboot 单元测试结合Jacoco收集单元测试覆盖率

    目录 单元测试 Junit 简单例子 mockito Mock 的限制 Powermock maven 引入 注解使用 处理私有方法 mock构造函数 结合Springboot一起使用 各种runne ...

  7. springboot单元测试类

    springboot单元测试类,引入下方jia包 <!--version 依据当前springboot版本即可--> <dependency><groupId>or ...

  8. SpringBoot单元测试RunWith注解无法解析

    关于SpringBoot单元测试RunWith注解没有提示,无法解析,没有导包提示的问题,笔者在此说明一下. 首先说明一下项目的环境 IDE是IDEA 创建项目使用的是Spring Initializ ...

  9. 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 测试 ...

最新文章

  1. 在xml文件的Preference标签中,用extra给intent标签加参数
  2. redis生产环境持久化_在SageMaker上安装持久性Julia环境
  3. NetCore 依赖注入之服务之间的依赖关系
  4. Service Broker实现发布-订阅(Publish-Subscribe)框架
  5. mysql 连接字符集_MySQL字符集详解
  6. Bailian2684 POJ NOI0105-34 求阶乘的和【迭代】
  7. 使用Ajax.dll前台调用后台方法及错误示例
  8. Buffer Pool--锁定内存页
  9. 【python量化】用python搭建一个股票舆情分析系统
  10. Face2Face: Real-time Face Capture and Reenactment
  11. 搭建kettle 源码工程报[ui/spoon.xul]找不到错误的解决方案
  12. 遇到了javah无法访问类的问题
  13. day 05 random time sys os pickle json re模块 爬取dytt
  14. OSPF 之 LSA限制
  15. 海思开发板设置开机自启动方法
  16. Prim算法的具体实现
  17. 信号与系统2—关于自然常数e的那些事
  18. 【JavaScript】什么是JavaScript?
  19. java暗黑再临-战神之怒_暗黑再临战神之怒
  20. 考研[*高数*]学习笔记汇总(全)

热门文章

  1. Flask+Vue搭建系统
  2. IDEA创建Maven工程Servlet
  3. python 移动平均函数_「EMA系列之I」如何理解EMA指数移动平均值以及Python实现
  4. 欧拉回路python
  5. 在警察领域高级人脸识别技术的一致性
  6. 关于C++ non-aggregate cannot be initialized错误的解决
  7. 微服务架构-服务网关(Gateway)-服务网关在微服务中的应用
  8. 4、弱电工程FTTH网络的分光建设及分光比设计
  9. 同步 fork(Syncing a fork)
  10. 小程序/app 商城 源码 发布(包括后台)