流式断言器AssertJ

一、前言

JDK8开始引入了流的概念,这种方式使得程序更加具有连贯性,通俗易懂。JUnit与Hamcrest结合,功能上虽然很强大了,但也有局限性。流式断言器AssertJ就对其进行了拓展,所谓的流式断言就是相较于Assert的单个校验点断言,支持一条断言语句对实际值同时断言多个校验点。

AssertJ核心是一个Java库,它提供了流接口【fluent interface】来编写断言。其主要目标是提高测试代码的可读性,使测试维护更容易。

AssertJ核心为JDK标准类型提供断言,并且可以与JUnit,TestNG或者其他任何测试框架一起使用。

不同的AssertJ主要版本依赖于不同的Java版本:

  • AssertJ 3.x requires Java 8 or higher
  • AssertJ 2.x requires Java 7 or higher
  • AssertJ 1.x requires Java 6 or higher

注意,AssertJ3.x包含所有AssertJ2.x特性,并添加了Java 8的特定特性(比如 exception assertions with lambdas)。

Maven依赖:

<dependency>
  <groupId>org.assertj</groupId>
  <artifactId>assertj-core</artifactId>
  <!-- use 2.9.1 for Java 7 projects -->
  <version>3.11.0</version>
  <scope>test</scope>
</dependency>

Gradle依赖:

testCompile("org.assertj:assertj-core:3.11.0")

二、AssertJ断言

AssertJ使用起来非常简单,只需静态导入Assertions类即可import static org.assertj.core.api.Assertions.*; 。当然我们也可以单独导入Assertions类中的方法,如下:

import static org.assertj.core.api.Assertions.assertThat;  // main one
import static org.assertj.core.api.Assertions.atIndex; // for List assertions
import static org.assertj.core.api.Assertions.entry;  // for Map assertions
import static org.assertj.core.api.Assertions.tuple; // when extracting several properties at once
import static org.assertj.core.api.Assertions.fail; // use when writing exception tests
import static org.assertj.core.api.Assertions.failBecauseExceptionWasNotThrown; // idem
import static org.assertj.core.api.Assertions.filter; // for Iterable/Array assertions
import static org.assertj.core.api.Assertions.offset; // for floating number assertions
import static org.assertj.core.api.Assertions.anyOf; // use with Condition
import static org.assertj.core.api.Assertions.contentOf; // use with File assertions

《功能很强大,太过复杂,还没有总结出一个关于流这方面的整理思路,待后期完善》

参考资料:

  • 流式断言器AssertJ入门介绍
  • 断言神器AssertJ快速入门
  • AssertJ的介绍
  • AssertJ的介绍
  • AssertJ简介

赞赏码

猜你喜欢

转载自blog.csdn.net/fanxiaobin577328725/article/details/81742333
今日推荐