FestAssert : les assertions plus lisible
Assertion ? assertion : (nom féminin) Proposition qu'on affirme Dans un contexte de test, c'est pareil. Si l'affirmation n'est pas vérifiée => ECHEC
Avec quoi les écrire ? JUnit  Je fais mes assertions avec parce qu'on s'en sert pour les test. TestNG Je fais mes assertions avec parce qu'on s'en sert pour les test. FestAssert Ce qu'on va voir Hamcrest Ce qui a inspiré FestAssert
JUnit - Ecrire assertion Peu de vocubulaire : assertTrue(maProposition) assertFalse(maProposition) assertEquals(objAttendu, objAVerifier) assertSame(objAttendu, objAVerifier) assertNull(monObjet) assertNotNull(monObjet)
JUnit - Ecrire assertion Ah bon, je croyais que je devais formuler une proposition ?
JUnit - Ecrire assertion Ben si, regarde : List<Employe> partipants = bof.getParticipants(); assertNotNull(participants);  assertEquals(20, partipants.size()); La syntaxe de la 2ème assertions est bizarre... Ca me fait penser à quelqu'un.... mais qui ?
JUnit - Yoda assertions assertEquals(20, partipants.size());   Je souhaite que égal à 20 soit le nombre de participants
JUnit Oulah, je vais devoir parler comme Yoda. Et si jamais, j'ai besoin d'un assertTrue, ça va être compliqué... . Je veux seulement vérifier que le nombre de partipants est de 20.
FestAssert Heureusement non : assertThat(participants).hasSize(20);
FestAssert - Junit Je dois changer mon framework de test alors ? Non, pas du tout, FestAssert fait s'occupe seulement des assertions.
FestAssert Lexique plus riche, plus simple assertThat(partipants).doesNotHaveDuplicate();    Et en plus, je peux chainer tout ça : assertThat(partipants).isNotNull().hasSize(20) .doesNotHaveDuplicate();   
FestAssert - Syntaxe Assertions  <= je m'en passe avec les imports statiques .assertThat(monObjet)  <= Fournit un xxxAssert .methode(...)  <= Méthode spécifique Et j'ai un bon nombre de xxxAssert : ListAssert FileAssert FloatAssert MapAssert StringAssert ObjectAssert .... Si pas mon objet n'a pas de xxxAssert, c'est le ObjectAssert
Vérifier présence de certains ? List<Employe> partipants = bof.getParticipants(); Employe nicolas = sfeir.getXXX Employe fabien = sfeir.getXXX assertThat(partipants).contains(nicolas, fabien); Pas super... Vérification liste
Fournit un ListAssert d'une liste transformée : List<A> => List<B> assertThat(partipants).onProperty(&quot;prenom&quot;) .contains(&quot;Nicolas&quot;, &quot;Fabien&quot;); onProperty
Failure 1/2 Parfois l'assertion est fausse : @Test public void junitListe() {     assertEquals(20, liste.size()); }   @Test public void festassertListe() {     Assertions.assertThat(liste).hasSize(20); }  
Failure 2/2 Des fois l'assertion est fausse : @Test public void junitString() {     assertNotNull(nom); }   @Test public void festAssertString() {     assertThat(nom).isNotNull(); }  
FestAssert - Extension Y'a même pas la méthode que je veux dans le xxxAssert
FestAssert - Syntaxe J'écris ma condition ! private class IsListeTailleImpaireCondition extends Condition<List<?>> {       @Override public boolean matches(List value) {            if(value == null){                return false;            } else {                return value.size()%2==1;            }        }    }    Et je m'en sers :  assertThat(maListe).satifies(new IsListeTailleImpaireCondition());    assertThat(maListe).doesNotsatify(new IsListeTailleImpaireCondition());    
FestAssert - Extension Y'a même pas le xxxAssert pour mon objet métier
FestAssert - Mon xxxAssert à moi J'écris mon xxxAssert : public class DateTimeAssert extends GenericAssert<DateTimeAssert, DateTime> {   public DateTimeAssert(DateTime actual) {          super(DateTimeAssert.class, actual);    }   public DateTimeAssert isBetween(DateTime begin, DateTime end){       isNotNull();      if(actual.compareTo(begin) >= 0 && actual.compareTo(end) <= 0) {            return this;          } throw failure(inBrackets(actual), &quot; should be between :&quot;, inBrackets(begin), &quot; and &quot;, inBrackets(end)));       }    } Et je m'en sers : MyAssertions.assertThat(maDate).isBeetwen(debutPeriode,finPeriode);

Fest assert : les assertions plus lisibles

  • 1.
    FestAssert : lesassertions plus lisible
  • 2.
    Assertion ? assertion: (nom féminin) Proposition qu'on affirme Dans un contexte de test, c'est pareil. Si l'affirmation n'est pas vérifiée => ECHEC
  • 3.
    Avec quoi lesécrire ? JUnit  Je fais mes assertions avec parce qu'on s'en sert pour les test. TestNG Je fais mes assertions avec parce qu'on s'en sert pour les test. FestAssert Ce qu'on va voir Hamcrest Ce qui a inspiré FestAssert
  • 4.
    JUnit - Ecrire assertionPeu de vocubulaire : assertTrue(maProposition) assertFalse(maProposition) assertEquals(objAttendu, objAVerifier) assertSame(objAttendu, objAVerifier) assertNull(monObjet) assertNotNull(monObjet)
  • 5.
    JUnit - Ecrire assertionAh bon, je croyais que je devais formuler une proposition ?
  • 6.
    JUnit - Ecrire assertionBen si, regarde : List<Employe> partipants = bof.getParticipants(); assertNotNull(participants);  assertEquals(20, partipants.size()); La syntaxe de la 2ème assertions est bizarre... Ca me fait penser à quelqu'un.... mais qui ?
  • 7.
    JUnit - Yodaassertions assertEquals(20, partipants.size());   Je souhaite que égal à 20 soit le nombre de participants
  • 8.
    JUnit Oulah, jevais devoir parler comme Yoda. Et si jamais, j'ai besoin d'un assertTrue, ça va être compliqué... . Je veux seulement vérifier que le nombre de partipants est de 20.
  • 9.
    FestAssert Heureusement non: assertThat(participants).hasSize(20);
  • 10.
    FestAssert - JunitJe dois changer mon framework de test alors ? Non, pas du tout, FestAssert fait s'occupe seulement des assertions.
  • 11.
    FestAssert Lexique plusriche, plus simple assertThat(partipants).doesNotHaveDuplicate();   Et en plus, je peux chainer tout ça : assertThat(partipants).isNotNull().hasSize(20) .doesNotHaveDuplicate();  
  • 12.
    FestAssert - SyntaxeAssertions  <= je m'en passe avec les imports statiques .assertThat(monObjet)  <= Fournit un xxxAssert .methode(...)  <= Méthode spécifique Et j'ai un bon nombre de xxxAssert : ListAssert FileAssert FloatAssert MapAssert StringAssert ObjectAssert .... Si pas mon objet n'a pas de xxxAssert, c'est le ObjectAssert
  • 13.
    Vérifier présence decertains ? List<Employe> partipants = bof.getParticipants(); Employe nicolas = sfeir.getXXX Employe fabien = sfeir.getXXX assertThat(partipants).contains(nicolas, fabien); Pas super... Vérification liste
  • 14.
    Fournit un ListAssertd'une liste transformée : List<A> => List<B> assertThat(partipants).onProperty(&quot;prenom&quot;) .contains(&quot;Nicolas&quot;, &quot;Fabien&quot;); onProperty
  • 15.
    Failure 1/2 Parfoisl'assertion est fausse : @Test public void junitListe() {     assertEquals(20, liste.size()); }   @Test public void festassertListe() {     Assertions.assertThat(liste).hasSize(20); }  
  • 16.
    Failure 2/2 Desfois l'assertion est fausse : @Test public void junitString() {     assertNotNull(nom); }   @Test public void festAssertString() {     assertThat(nom).isNotNull(); }  
  • 17.
    FestAssert - ExtensionY'a même pas la méthode que je veux dans le xxxAssert
  • 18.
    FestAssert - SyntaxeJ'écris ma condition ! private class IsListeTailleImpaireCondition extends Condition<List<?>> {       @Override public boolean matches(List value) {            if(value == null){                return false;            } else {                return value.size()%2==1;            }        }    }    Et je m'en sers :  assertThat(maListe).satifies(new IsListeTailleImpaireCondition());   assertThat(maListe).doesNotsatify(new IsListeTailleImpaireCondition());  
  • 19.
    FestAssert - ExtensionY'a même pas le xxxAssert pour mon objet métier
  • 20.
    FestAssert - MonxxxAssert à moi J'écris mon xxxAssert : public class DateTimeAssert extends GenericAssert<DateTimeAssert, DateTime> {   public DateTimeAssert(DateTime actual) {          super(DateTimeAssert.class, actual);    }   public DateTimeAssert isBetween(DateTime begin, DateTime end){      isNotNull();     if(actual.compareTo(begin) >= 0 && actual.compareTo(end) <= 0) {            return this;          } throw failure(inBrackets(actual), &quot; should be between :&quot;, inBrackets(begin), &quot; and &quot;, inBrackets(end)));      }   } Et je m'en sers : MyAssertions.assertThat(maDate).isBeetwen(debutPeriode,finPeriode);