Slide 1

Slide 1 text

See the Truth Un nouveau framework d’assertions @JeremMartinez www.jeremie-martinez.com

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

Pourquoi utiliser un framework d’assertion ?

Slide 4

Slide 4 text

Gagner en lisibilité Message d’erreur plus significatif Richesse de l’API Pourquoi utiliser un framework d’assertion ?

Slide 5

Slide 5 text

Une solution : Truth AssertJ Fest VS

Slide 6

Slide 6 text

Extensible

Slide 7

Slide 7 text

Failure strategy

Slide 8

Slide 8 text

Failure strategy 1. Si l’assert échoue on arrête le test et on le marque comme échoué. : Assert

Slide 9

Slide 9 text

Failure strategy 2. Si l’assume échoue On arrête le test et on l’ignore. : Assume

Slide 10

Slide 10 text

Failure strategy : Assume @Test
 public void should_test_super_new_feature() {
 assume().that(VERSION.SDK_INT)
 .isGreaterThan(VERSION.LOLLIPOP);
 
 // Some assertions only run on Lollipop
 }

Slide 11

Slide 11 text

Failure strategy : Expect 3. Si l’expect échoue On continue le test et on accumule les échecs. À la fin du test, on fait le bilan.

Slide 12

Slide 12 text

Failure strategy : Expect private final Expect EXPECT = Expect.create();
 private final ExpectedException thrown = ExpectedException.none();
 
 @Rule public final TestRule wrapper = (base, description) -> {
 Statement expected = EXPECT.apply(base, description);
 return thrown.apply(expected, description);
 };

Slide 13

Slide 13 text

Failure strategy : Expect @Test
 public void should_convert() {
 Cart.Item item = new Cart.Item(1L, "Tomatoes", 3f);
 
 ItemDTO dto = convert(item);
 
 EXPECT.that(dto.description).isEqualTo("Tomatoes");
 EXPECT.that(dto.id).isEqualTo(1);
 EXPECT.that(dto.price).isEqualTo(3);
 }

Slide 14

Slide 14 text

Conclusion et Questions @JeremMartinez www.jeremie-martinez.com