SpringBoot 单元测试JUnit的使用详解
一、简介
JUnit是一款优秀的开源Java单元测试框架,也是目前使用率最高最流行的测试框架,开发工具Eclipse和IDEA对JUnit都有很好的支持,JUnit主要用于白盒测试和回归测试。
白盒测试:把测试对象看作一个打开的盒子,程序内部的逻辑结构和其他信息对测试人 员是公开的;
回归测试:软件或环境修复或更正后的再测试;
单元测试:最小粒度的测试,以测试某个功能或代码块。一般由程序员来做,因为它需要知道内部程序设计和编码的细节;
二、JUnit使用
1、pom.xml中添加JUnit依赖。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
2、简单代码
@RunWith(SpringRunner.class) @SpringBootTest public class JUnitTest { @Test public void test() { System.out.println(("----- method test ------")); String name = "yunfan"; Assert.assertEquals("yunfan22", name); } }
在测试类中运行项目:
很明显这是测试不通过的效果,如果是通过的呢,看下图:
3、注解说明
注解 | 释义 |
---|---|
@RunWith | 标识为JUnit的运行环境。 |
@SpringBootTest | 获取启动类、加载配置,确定装载Spring Boot。 |
@Test | 声明需要测试的方法。 |
@BeforeClass | 针对所有测试,只执行一次,且必须为static void。 |
@AfterClass | 针对所有测试,只执行一次,且必须为static void。 |
@Before | 每个测试方法前都会执行的方法。 |
@After | 每个测试方法前都会执行的方法。 |
@Ignore | 忽略方法。 |
4、超时测试
@Test(timeout = 1000)
5、断言测试
断言测试也就是期望值测试,是单元测试的核心也就是决定测试结果的表达式。
方法 | 释义 |
---|---|
Assert.assertEquals | 对比两个值相等 |
Assert.assertNotEquals | 对比两个值不相等 |
Assert.assertSame | 对比两个对象的引用相等 |
Assert.assertArrayEquals | 对比两个数组相等 |
Assert.assertTrue | 验证返回是否为真 |
Assert.assertFlase | 验证返回是否为假 |
Assert.assertNull | 验证null |
Assert.assertNotNull | 验证非null |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Spring Boot 单元测试JUnit的实践
一.介绍 JUnit是一款优秀的开源Java单元测试框架,也是目前使用率最高最流行的测试框架,开发工具Eclipse和IDEA对JUnit都有很好的支持,JUnit主要用于白盒测试和回归测试. <!--more--> 白盒测试:把测试对象看作一个打开的盒子,程序内部的逻辑结构和其他信息对测试人 员是公开的: 回归测试:软件或环境修复或更正后的再测试: 单元测试:最小粒度的测试,以测试某个功能或代码块.一般由程序员来做,因为它需要知道内部程序设计和编码的细节: JUnit GitHub地址:ht
-
spring boot配置拦截器代码实例
这篇文章主要介绍了spring boot配置拦截器代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 首先引入web模块的依赖: 复制代码 <!-- spring boot web 组件 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</ar
-
详解Spring Boot Junit单元测试
Junit这种老技术,现在又拿出来说,不为别的,某种程度上来说,更是为了要说明它在项目中的重要性. 凭本人的感觉和经验来说,在项目中完全按标准都写Junit用例覆盖大部分业务代码的,应该不会超过一半. 刚好前段时间写了一些关于SpringBoot的帖子,正好现在把Junit再拿出来从几个方面再说一下,也算是给一些新手参考了. 那么先简单说一下为什么要写测试用例 1. 可以避免测试点的遗漏,为了更好的进行测试,可以提高测试效率 2. 可以自动测试,可以在项目打包前进行测试校验 3. 可以及时发现因
-
Spring Boot 2和Redis例子实现过程解析
这篇文章主要介绍了Spring Boot2发布与调用REST服务过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Redis是一个key-value数据库,支持存储的value类型包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).在Java中,使用较为广泛的客户端有Redisson.Jedis.Spring Data Redis模块默认使用Jedis. 开发
-
基于Springboot+Junit+Mockito做单元测试的示例
前言 这篇文章介绍如何使用Springboot+Junit+Mockito做单元测试,案例选取撮合交易的一个类来做单元测试. 单元测试前先理解需求 要写出好的单测,必须先理解了需求,只有知道做什么才能知道怎么测.但本文主要讲mockito的用法,无需关注具体需求.所以本节略去具体的需求描述. 隔离外部依赖 Case1. 被测类中被@Autowired 或 @Resource 注解标注的依赖对象,如何控制其返回值 以被测方法 MatchingServiceImpl.java的matching(Ma
-
详解springboot中junit回滚
springboot中使用junit编写单元测试,并且测试结果不影响数据库. pom引入依赖 如果是IDE生成的项目,该包已经默认引入. <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency&g
-
SpringBoot整合Junit实例过程解析
这篇文章主要介绍了SpringBoot整合Junit实例过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 前提条件:SpringBoot已经整合了Mybatis,至于SpringBoot如何整合Mybatis可参考SpringBoot整合mybatis简单案例过程解析 SpringBoot为什么要整合Juni? SpringBoot整合了Junit后,在写了Mapper接口后,可直接通过Junit进行测试,不用再写Controller层,
-
在Spring boot的项目中使用Junit进行单体测试
使用Junit或者TestNG可以进行单体测试,这篇文章简单说明一下如何在Spring boot的项目中使用Junit进行单体测试. pom设定 pom中需要添加spring-boot-starter-test <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>
-
SpringBoot 单元测试JUnit的使用详解
一.简介 JUnit是一款优秀的开源Java单元测试框架,也是目前使用率最高最流行的测试框架,开发工具Eclipse和IDEA对JUnit都有很好的支持,JUnit主要用于白盒测试和回归测试. 白盒测试:把测试对象看作一个打开的盒子,程序内部的逻辑结构和其他信息对测试人 员是公开的: 回归测试:软件或环境修复或更正后的再测试: 单元测试:最小粒度的测试,以测试某个功能或代码块.一般由程序员来做,因为它需要知道内部程序设计和编码的细节: 二.JUnit使用 1.pom.xml中添加JUnit依赖.
-
springboot配置内存数据库H2教程详解
业务背景:因soa系统要供外网访问,处于安全考虑用springboot做了个前置模块,用来转发外网调用的请求和soa返回的应答.其中外网的请求接口地址在DB2数据库中对应专门的一张表来维护,要是springboot直接访问数据库,还要专门申请权限等,比较麻烦,而一张表用内置的H2数据库维护也比较简单,就可以作为替代的办法. 环境:springboot+maven3.3+jdk1.7 1.springboot的Maven工程结构 说明一下,resource下的templates文件夹没啥用.我忘记
-
springBoot整合rabbitMQ的方法详解
引入pom <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0
-
分析Springboot中嵌套事务失效原因详解
首先两个事务方法,其中一个调用另一个. @Transactional(rollbackFor = Exception.class) public void trance() { try { trance1();//调用下一个事务方法. } catch (Exception e) { e.printStackTrace(); } User user = new User(); ShardingIDConfig shardingIDConfig = new ShardingIDConfig(); u
-
SpringBoot自定义启动器Starter流程详解
目录 一.背景 二.自定义启动器 1.创建一个启动器的自动配置模块 2.创建一个启动器模块 3.在业务模块中引入启动器 一.背景 虽然Spring官方给我们提供了很多的启动器供我们使用 但有时候我们也会遇到某些特殊场景,这些启动器满足不了 这个时候就需要自定义一个启动器供我们使用 二.自定义启动器 在之前学习Spring Boot的过程中,我们已经对启动器有了一个大致的了解 Spring Boot实现某个功能,一般是引入对应场景的启动器(一般不写代码,只是声明这个启动器需要引用哪些依赖),然后这
-
springboot与mybatis整合实例详解(完美融合)
简介 从 Spring Boot 项目名称中的 Boot 可以看出来,Spring Boot 的作用在于创建和启动新的基于 Spring 框架的项目.它的目的是帮助开发人员很容易的创建出独立运行和产品级别的基于 Spring 框架的应用.Spring Boot 会选择最适合的 Spring 子项目和第三方开源库进行整合.大部分 Spring Boot 应用只需要非常少的配置就可以快速运行起来. Spring Boot 包含的特性如下: 创建可以独立运行的 Spring 应用. 直接嵌入 Tomc
-
SpringBoot Tomcat启动实例代码详解
废话不多了,具体内容如下所示: Application configuration class: @SpringBootApplication public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return appli
-
SpringBoot整合Shiro的代码详解
shiro是一个权限框架,具体的使用可以查看其官网 http://shiro.apache.org/ 它提供了很方便的权限认证和登录的功能. 而springboot作为一个开源框架,必然提供了和shiro整合的功能!接下来就用springboot结合springmvc,mybatis,整合shiro完成对于用户登录的判定和权限的验证. 1.准备数据库表结构 这里主要涉及到五张表:用户表,角色表(用户所拥有的角色),权限表(角色所涉及到的权限),用户-角色表(用户和角色是多对多的),角色-权限表
-
springboot配置logback日志管理过程详解
这篇文章主要介绍了springboot配置logback日志管理过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 首先书写logback-spring.xml文件为: <?xml version="1.0" encoding="UTF-8"?> <configuration> <springProperty scope="context" name="
-
SpringBoot整合Druid数据源过程详解
这篇文章主要介绍了SpringBoot整合Druid数据源过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.数据库结构 2.项目结构 3.pom.xml文件 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</ar
随机推荐
- jquery如何判断某元素是否具备指定的样式
- 简介AngularJS中使用factory和service的方法
- IIS6下配置fastcgi的php的教程
- 深入解析Java的线程同步以及线程间通信
- CodeIgniter图像处理类的深入解析
- 浅谈php冒泡排序
- c#实现隐藏与显示任务栏的方法详解
- Android 启动activity的4种方式及打开其他应用的activity的坑
- MySQL 随机查询数据与随机更新数据实现代码
- JavaScript中实现单体模式分享
- web标准知识——用途相似的标签
- 压缩技术给SQL Server备份文件瘦身
- 人工智能自动sql优化工具--SQLTuning for SQL Server
- jQuery的cookie插件实现保存用户登陆信息
- jQuery获取复选框被选中数量及判断选择值的方法详解
- jquery实用代码片段集合
- Java Map的排序实例详解
- 初步解析Python中的yield函数的用法
- JS实现网页右侧带动画效果的伸缩窗口代码
- C++实现查壳程序代码实例