Parmi les quickies de Devoxx France 2013, j'ai assisté à la présentation intitulée « Simplifiez vos tests avec les assertions AssertJ ! » présentée par Joel Costigliola (compte github).
Joel était contributeur du projet FEST Assertions, dont la prochaine version contiendra moins d'assertions. Pensant qu'il faut au contraire rajouter plus d'assertions, il a fait un fork du projet sous le nom AssertJ.
Les principaux modules d'AssertJ sont :
- assertj-core : le module principal
- assertj-guava : une extension pour faire des assertions sur les types Guava
- assertj-joda-time : une extension pour faire des assertions sur les types Joda Time
- assertj-examples : des exemples de tests JUnit utilisant les modules ci-dessus
De plus, un outil en ligne de commande permet de créer des assertions spécifiques au métier de l'utilisateur. Celui-ci s'intègre aux outils existants à l'aide d'un plugin maven et d'un plugin eclipse (prévu pour avril). Du code est généré à partir du code source des classes métier.
Exemple
Avec la classe suivante :
public class Person {
private String name;
}
On obtient du code permettant d'écrire l'assertion :
assertThat(person).hasName("pierre");
En plus du code généré, l'outil crée la javadoc et documente l'implémentation des méthodes.