JUnit 单元测试断言推荐 AssertJ
文章转自:http://sgq0085.iteye.com/blog/2030609
前言
由于JUnit的Assert是公认的烂API,所以不推荐使用,目前推荐使用的是AssertJ。
AssertJ网站: http://joel-costigliola.github.io/assertj/
github上examples 地址 https://github.com/joel-costigliola/assertj-examples
附件中assertj-examples-octo-assertj-core-1.5.0是官方examples
整理一些常用的例子如下
对字符串断言
- );
- ).isEqualTo(42);
- ).isGreaterThan(38).isGreaterThanOrEqualTo(38);
- ).isLessThan(58).isLessThanOrEqualTo(58);
- ).isZero();
- ).isPositive().isNotNegative();
- ).isNegative().isNotPositive();
- ).isAfterYear(2013);
- );
- );
- , 2, 3)).startsWith(1).endsWith(3);
- , 2, 3)).contains(1, atIndex(0)).contains(2, atIndex(1)).contains(3)
- , 1, 2)).isSubsetOf(newArrayList(1, 2, 3, 4));
- );
- );
- );
- );
- ), entry("B", 2));
- );
- }
对Class断言
- @Test
- public void testClass() {
- // 断言 是注解
- assertThat(Magical.class).isAnnotation();
- // 断言 不是注解
- assertThat(Ring.class).isNotAnnotation();
- // 断言 存在注解
- assertThat(Ring.class).hasAnnotation(Magical.class);
- // 断言 不是借口
- assertThat(Ring.class).isNotInterface();
- // 断言 是否为指定Class实例
- assertThat("string").isInstanceOf(String.class);
- // 断言 类是给定类的父类
- assertThat(Person.class).isAssignableFrom(Employee.class);
- }
- @Magical
- public enum Ring {
- oneRing, vilya, nenya, narya, dwarfRing, manRing;
- }
- @Target(ElementType.TYPE)
- @Retention(RetentionPolicy.RUNTIME)
- public @interface Magical {}
- public class Person {}
- public class Employee extends Person {}
使用fail方法
- @Test
- public void testFail() {
- try {
- fail("在不检查任何条件的情况下使断言失败。显示一则消息");
- } catch (AssertionError ae) {
- logger.info("可以通过catch捕获该Error");
- }
- try {
- failBecauseExceptionWasNotThrown(ServiceException.class);
- } catch (AssertionError ae) {
- logger.info("可以通过catch捕获该Error");
- }
- }
除此之外,还提供包括Exception、Iterable、JodaTime、Guava等等很多的断言支持。
原文地址:https://blog.csdn.net/qq_41247433/article/details/80521385
JUnit 单元测试断言推荐 AssertJ的更多相关文章
- Demo002 IDEA中Junit单元测试的使用(初级篇)
推荐JUnit视频教程:JUnit-Java单元测试必备工具. 1.基本理论 1.1 单元测试 单元测试又称模块测试,属于白盒测试,是最小单位的测试.模块分为程序模块和功能模块.功能模块指实现了一个完 ...
- 流式断言器AssertJ介绍
本文来自网易云社区 作者:范旭斐 大家在使用testng.junit做自动化测试的过程中,经常会用到testng.junit自带的断言器,有时候对一个字符串.日期.列表进行断言很麻烦,需要借助到jdk ...
- 基础-Junit单元测试_反射_注解
一.Junit单元测试 1.1 测试分类: 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值. 白盒测试:需要写代码的.关注程序具体的执行流程. 1.2 Junit使用(白盒测试) 使用步 ...
- Java 工具 JUnit单元测试
Java 工具 JUnit单元测试 @author ixenos 1.1. JUnit单元测试框架的基本使用 一.搭建环境: 导入junit.jar包(junit4) 二.写测试类: 0,一般一个 ...
- 单元测试系列:JUnit单元测试规范
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6762032.html Junit测试代 ...
- JUnit单元测试教程(翻译自Java Code Geeks)
JUnit单元测试教程--终极指南 JUnit单元测试教程终极指南 说明 单元测试简介 1 什么是单元测试 2 测试覆盖 3 Java中的单元测试 JUnit简介 1 使用Eclipse实现简单JUn ...
- 单元测试系列之三:JUnit单元测试规范
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6762032.html Junit测试代 ...
- Junit 单元测试、BeanUtils、Properties类
一. Junit单元测试 1.1. Junit单元测试框架的基本使用 一.搭建环境: 导入junit.jar包(junit4) 二.写测试类: 0,一般一个类对应一个测试类. 1,测试类与被测试类最好 ...
- day1 java基础回顾-Junit单元测试
Junit单元测试框架的基本使用 一.搭建环境: 导入junit.jar包(junit4) 二.写测试类: 0,一般一个类对应一个测试类. 1,测试类与被测试类最好是放到同一个包中(可以是不同的源文件 ...
随机推荐
- 软件测试 → 第一章 基础-> 软件与软件危机
一. 软件概念 1.软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合.2.程序是按事先设计的功能和性能要求执行的指令序列.3.数据是使程序能正常操纵信息的数据结构. ...
- Intellij IDEA通过tomcat部署web项目的机制
问题 以前使用eclipse调用tomcat运行web项目时,eclipse的方式非常直接了当,就是直接将项目更新到%TOMCAT_HOME%/webapps目录下即可.然而在使用Intellij I ...
- closest和parents方法区别
今天第一次看到closest方法,以前也从来没用过. 该方法从元素本身开始往上查找,返回最近的匹配的祖先元素. 1.closest查找开始于自身,parents开始于元素父级 2.closest向上查 ...
- hdu4180 数论
一个分数假如 3/5=1/(1+2/3)=1/(1+1/(1+1/2)); 当分子出现1的时候,只要让分母减一. #include <stdio.h> #include <stdli ...
- GDB调试命令手册
使用GDB 启动 $ gdb program # program是你的可执行文件,一般在当前目录 $ gdb program core # gdb同时调试运行程序和cor ...
- Gym - 101480D_Digit Division
题意:输入n,m,将n分段,每一段都可以被m整除,有多少种方法. 题解:找到n最多可以分成多少段,1段1中分法,2段2中分法,3段4种分法--计算可知若有x段则2^x-1种分法. 注意:如果n无法被m ...
- SDUT-3335_数据结构实验之栈与队列八:栈的基本操作
数据结构实验之栈与队列八:栈的基本操作 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 堆栈是一种基本的数据结构.堆栈具 ...
- laravel 增加不存在数据库的字段
有时候您可能想要增加不存在数据库字段的属性数据.这时候只要定义一个获取器即可: public function getIsAdminAttribute() { return $this->att ...
- hdu 3982 Harry Potter and J.K.Rowling (半平面交 + 圆与多边形交)
Problem - 3982 题意就是给出一个圆心在原点半径为R的圆形蛋糕,上面有一个cherry,对蛋糕切若干刀,最后要求求出有cherry的那块的面积占整个蛋糕的多少. 做法显而易见,就是一个半平 ...
- MySQL数据库字符集和整理
MySQL数据库字符集和整理(2009-11-20 22:23:37) mysql数据库 it 其实这个表在MySQL数据库中通过phpMyAdmin就能看到,icech只是把表格整理了一下方便 ...