Over a million developers have joined DZone.

FEST-Assert 1.4: Fluent Interface for Assertions


We are proud to announce that FEST-Assert 1.4 is out!

FEST-Assert is an “assertThat” library that provides a fluent interface for writing assertions. Its main goal is to improve test code readability and make maintenance of tests easier.


int removed = employees.removeFired();
List newEmployees = employees.hired(TODAY);
.contains(frodo, sam);
String[] newHires = employees.newHiresNames();
assertThat(newHires).containsOnly("Gandalf", "Arwen", "Gimli");

One of the biggest changes in this release is the implementation of Ansgar’s "Self Types." By using this brilliant technique we ended up with a smaller, cleaner code base that is easier to maintain.

Here are some numbers, comparing this release with the previous one:

Release Lines of code Tests Code coverage
1.3 3,132 3,707 98.7%
1.4 2,051 1,849 100%

Please note that 1.4 has more features than 1.3 and yet the code base is 35% smaller!

Release notes


  • [FEST-378] - Newly added assertThat(Iterable<?> actual) eagerly calls iterator() and can throw an NPE
  • [FEST-402] - onProperty is unable to access properties from Object class
  • [FEST-414] - Impossible to use Fest Assert 1.3 with Ivy
  • [FEST-415] - IteratorAssert should delay Iterator comsumption as much as possible
  • [FEST-416] - NPE in MapAssert due to FEST-329


  • [FEST-105] - Add isEither, or isOneOf
  • [FEST-413] - Implement Ansgar's Self Types
  • [FEST-423] - User-friendly date and calendar formatting

New Feature

  • [FEST-111] - Add support for regular expression matching to StringAssert
  • [FEST-381] - collection onProperty() assert might give nicer exceptions
  • [FEST-400] - Add generic assertions isIn / isNotIn

You can download the latest release here (file fest-assert-1.4.zip.) FEST-Assert requires Java SE 5.0 or later.

Here are some useful links:

Feedback is always appreciated :)


{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}