Upgrade to Pro — share decks privately, control downloads, hide ads and more …

See the Truth

See the Truth

Un nouveau framework d'assertions en Java présenté à Devoxx France 2016

Code disponible: https://github.com/jeremiemartinez/truth_devoxx

05dd369062f7c4e450e1e08d1471da5b?s=128

Jeremie Martinez

April 21, 2016
Tweet

Transcript

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

  2. None
  3. Pourquoi utiliser un framework d’assertion ?

  4. Gagner en lisibilité Message d’erreur plus significatif Richesse de l’API

    Pourquoi utiliser un framework d’assertion ?
  5. Une solution : Truth AssertJ Fest VS

  6. Extensible

  7. Failure strategy

  8. Failure strategy 1. Si l’assert échoue on arrête le test

    et on le marque comme échoué. : Assert
  9. Failure strategy 2. Si l’assume échoue On arrête le test

    et on l’ignore. : Assume
  10. 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
 }
  11. 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.
  12. 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);
 };
  13. 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);
 }
  14. Conclusion et Questions @JeremMartinez www.jeremie-martinez.com