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.
Example:
int removed = employees.removeFired(); assertThat(removed).isZero(); List newEmployees = employees.hired(TODAY); assertThat(newEmployees).hasSize(6) .contains(frodo, sam); String[] newHires = employees.newHiresNames(); assertThat(newHires).containsOnly("Gandalf", "Arwen", "Gimli"); assertThat(yoda).isInstanceOf(Jedi.class) .isEqualTo(foundJedi) .isNotEqualTo(foundSith);
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
Bug
- [FEST-378] - Newly added
assertThat(Iterable<?> actual)eagerly callsiterator()and can throw anNPE - [FEST-402] -
onPropertyis unable to access properties fromObjectclass - [FEST-414] - Impossible to use Fest Assert 1.3 with Ivy
- [FEST-415] -
IteratorAssertshould delayIteratorcomsumption as much as possible - [FEST-416] -
NPEinMapAssertdue to FEST-329
Improvement
- [FEST-105] - Add
isEither, orisOneOf - [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 :)