文章转自: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

整理一些常用的例子如下

对字符串断言

  1. );
  2. ).isEqualTo(42);
  3. ).isGreaterThan(38).isGreaterThanOrEqualTo(38);
  4. ).isLessThan(58).isLessThanOrEqualTo(58);
  5. ).isZero();
  6. ).isPositive().isNotNegative();
  7. ).isNegative().isNotPositive();
  8. ).isAfterYear(2013);
  9. );
  10. );
  11. , 2, 3)).startsWith(1).endsWith(3);
  12. , 2, 3)).contains(1, atIndex(0)).contains(2, atIndex(1)).contains(3)
  13. , 1, 2)).isSubsetOf(newArrayList(1, 2, 3, 4));
  14. );
  15. );
  16. );
  17. );
  18. ), entry("B", 2));
  19. );
  20. }

对Class断言

  1. @Test
  2. public void testClass() {
  3. // 断言 是注解
  4. assertThat(Magical.class).isAnnotation();
  5. // 断言 不是注解
  6. assertThat(Ring.class).isNotAnnotation();
  7. // 断言 存在注解
  8. assertThat(Ring.class).hasAnnotation(Magical.class);
  9. // 断言 不是借口
  10. assertThat(Ring.class).isNotInterface();
  11. // 断言 是否为指定Class实例
  12. assertThat("string").isInstanceOf(String.class);
  13. // 断言 类是给定类的父类
  14. assertThat(Person.class).isAssignableFrom(Employee.class);
  15. }
  16. @Magical
  17. public enum Ring {
  18. oneRing, vilya, nenya, narya, dwarfRing, manRing;
  19. }
  20. @Target(ElementType.TYPE)
  21. @Retention(RetentionPolicy.RUNTIME)
  22. public @interface Magical {}
  23. public class Person {}
  24. public class Employee extends Person {}

使用fail方法

  1. @Test
  2. public void testFail() {
  3. try {
  4. fail("在不检查任何条件的情况下使断言失败。显示一则消息");
  5. } catch (AssertionError ae) {
  6. logger.info("可以通过catch捕获该Error");
  7. }
  8. try {
  9. failBecauseExceptionWasNotThrown(ServiceException.class);
  10. } catch (AssertionError ae) {
  11. logger.info("可以通过catch捕获该Error");
  12. }
  13. }

除此之外,还提供包括Exception、Iterable、JodaTime、Guava等等很多的断言支持。

原文地址:https://blog.csdn.net/qq_41247433/article/details/80521385

JUnit 单元测试断言推荐 AssertJ的更多相关文章

  1. Demo002 IDEA中Junit单元测试的使用(初级篇)

    推荐JUnit视频教程:JUnit-Java单元测试必备工具. 1.基本理论 1.1 单元测试 单元测试又称模块测试,属于白盒测试,是最小单位的测试.模块分为程序模块和功能模块.功能模块指实现了一个完 ...

  2. 流式断言器AssertJ介绍

    本文来自网易云社区 作者:范旭斐 大家在使用testng.junit做自动化测试的过程中,经常会用到testng.junit自带的断言器,有时候对一个字符串.日期.列表进行断言很麻烦,需要借助到jdk ...

  3. 基础-Junit单元测试_反射_注解

    一.Junit单元测试 1.1 测试分类: 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值. 白盒测试:需要写代码的.关注程序具体的执行流程. 1.2 Junit使用(白盒测试) 使用步 ...

  4. Java 工具 JUnit单元测试

    Java 工具 JUnit单元测试 @author ixenos 1.1.   JUnit单元测试框架的基本使用 一.搭建环境: 导入junit.jar包(junit4) 二.写测试类: 0,一般一个 ...

  5. 单元测试系列:JUnit单元测试规范

    更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6762032.html Junit测试代 ...

  6. JUnit单元测试教程(翻译自Java Code Geeks)

    JUnit单元测试教程--终极指南 JUnit单元测试教程终极指南 说明 单元测试简介 1 什么是单元测试 2 测试覆盖 3 Java中的单元测试 JUnit简介 1 使用Eclipse实现简单JUn ...

  7. 单元测试系列之三:JUnit单元测试规范

    更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6762032.html Junit测试代 ...

  8. Junit 单元测试、BeanUtils、Properties类

    一. Junit单元测试 1.1. Junit单元测试框架的基本使用 一.搭建环境: 导入junit.jar包(junit4) 二.写测试类: 0,一般一个类对应一个测试类. 1,测试类与被测试类最好 ...

  9. day1 java基础回顾-Junit单元测试

    Junit单元测试框架的基本使用 一.搭建环境: 导入junit.jar包(junit4) 二.写测试类: 0,一般一个类对应一个测试类. 1,测试类与被测试类最好是放到同一个包中(可以是不同的源文件 ...

随机推荐

  1. vue_qqmapdemo1

    腾讯地图vue组件,实现异步加载腾讯地图,坐标拾取器,支持按城市名称搜索. 搜索框样式依赖elementUI,不需要可删除顶部,地图部分无依赖项 //qqmap.vue <template> ...

  2. TensorFlow3学习笔记1

    1.简单实例:向量相加 下面我们通过两个向量相加的简单例子来看一下Tensorflow的基本用法. [1. 1. 1. 1.] + [2. 2. 2. 2.] = [3. 3. 3. 3.] impo ...

  3. springboot thymeleaf【转】【补】

    thymeleaf模板 https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html 1.引入thymeleaf依赖 <!-- ...

  4. SpringCloud Zuul 路由映射规则配置

    阅读目录 前言 快速入门 路由详解 Cookie与头信息 本地跳转 Hystrix和Ribbon支持 过滤器解释 动态加载 后记 回到目录 前言 本文起笔于2018-06-26周二,接了一个这周要完成 ...

  5. 对The Curse of Dimensionality(维度灾难)的理解

    一个特性:低维(特征少)转向高维的过程中,样本会变的稀疏(可以有两种理解方式:1.样本数目不变,样本彼此之间距离增大.2.样本密度不变,所需的样本数目指数倍增长). 高维度带来的影响: 1.变得可分. ...

  6. 提供SaaS Launchkit,快速定制,一云多端等能力,一云多端将通过小程序云实现

    摘要: SaaS加速器的技术中心能力中,将提供SaaS Launchkit,快速定制,一云多端等能力,加速应用上云迁移.降低应用开发和定制的门槛,提升效率.其中非常关键的一云多端能力将通过小程序云实现 ...

  7. mysql原来是按自然日统计。怎么可以用今天10点到次日10点这样统计???

    关于网友提出的" mysql原来是按自然日统计.怎么可以用今天10点到次日10点这样统计???"问题疑问,本网通过在网上对" mysql原来是按自然日统计.怎么可以用今天 ...

  8. 1176. Two Ends

    题目链接地址:http://soj.me/1176 题目大意:两头取数.第一个人随机取,第二个人用贪婪算法(每次都取大的),求两人取数在第一个人赢的情况下的最大分差.使用贪婪算法时,如果左右两边相等, ...

  9. LeetCode54 Spiral Matrix

    题目: Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spira ...

  10. PHPExcel 设置表格边框

    //设置单元格边框 $style_array = array( 'borders' => array( 'allborders' => array( 'style' => \PHPE ...