21
TESTS UNITAIRES DE RENDU FBSNAPSHOTTESTCASE Swift Nicolas Fontaine

Rendering unit tests par Nicolas Fontaine

Embed Size (px)

Citation preview

Page 1: Rendering unit tests par Nicolas Fontaine

TESTS UNITAIRES DE RENDU FBSNAPSHOTTESTCASE

SwiftNicolas Fontaine

Page 2: Rendering unit tests par Nicolas Fontaine

PAPI ! RACONTE MOI COMMENT TU TESTES L’UI DE TES APPLICATIONS ?

Page 3: Rendering unit tests par Nicolas Fontaine

TU SAIS MON PETIT, LES TESTS UNITAIRES ET L’UI C’EST JAMAIS UNE HISTOIRE D’AMOUR

FOLICHONNE

Page 4: Rendering unit tests par Nicolas Fontaine

MAIS ALORS… COMMENT TESTER FACILEMENT ET

EFFICACEMENT L’UI ?

Page 5: Rendering unit tests par Nicolas Fontaine

ET BIEN LE PREMIER PAS…

C’EST DE BIEN ISOLER SES COMPOSANTS GRAPHIQUES

Page 6: Rendering unit tests par Nicolas Fontaine

OK ET APRÈS ?…

Page 7: Rendering unit tests par Nicolas Fontaine

APRÈS… IL Y A FACEBOOK !

Page 8: Rendering unit tests par Nicolas Fontaine

TU M’EXPLIQUES LE RAPPORT ?

Page 9: Rendering unit tests par Nicolas Fontaine

BON, POUR ÊTRE PLUS PRÉCIS, IL Y A FBSNAPSHOTTESTCASE

*reprend son souffle*

UN FRAMEWORK CONÇU PAR

Page 10: Rendering unit tests par Nicolas Fontaine

OH !!! TU M’EXPLIQUES COMMENT ÇA MARCHE ?

Page 11: Rendering unit tests par Nicolas Fontaine

11

Qu’est-ce que c’est ?

Original En lançant les TUs

12 Nov 2016

17 Nov 2016

Page 12: Rendering unit tests par Nicolas Fontaine

12

Comment ça marche ?

Ajouter FBSnapshotTestCase à votre target de tests :

À la création d’un pod :

Manuellement via le podfile :

Page 13: Rendering unit tests par Nicolas Fontaine

13

Comment ça marche ?

Définir une variable d’environnement « FB_REFERENCE_IMAGE_DIR » Qui indique le dossier vers lequel enregistrer les snapshot de référence

Page 14: Rendering unit tests par Nicolas Fontaine

14

Comment ça marche ?

Remplacer votre classe de test « XCTestCase » par « FBSnapshotTestCase »

Placer le mode record dans la méthode setUp :

self.recordMode = true;

Une fois que vous avez enregistré tous vos snapshot, il faut commenter cette ligne

Page 15: Rendering unit tests par Nicolas Fontaine

15

Comment ça marche ?

Méthodes :

FBSnapshotVerifyView(view: UIView)

FBSnapshotVerifyView(view: UIView, identifier: String, suffixes: NSOrderedSet, tolerance: CGFloat>)

View à tester Suffix du snapshot Nom du dossier final contenant les

snapshot (seul le premier élément du set semble être pris

en compte) Par défaut : « _64 »

ou « _32 » (bits)

Pourcentage de tolérance entre 0

et 1.

Page 16: Rendering unit tests par Nicolas Fontaine

OLALA PAPI, ILS FAUT VRAIMENT QU’ILS APPRENNENT À NOMMER CORRECTEMENT CHEZ

FACEBOOK…

Page 17: Rendering unit tests par Nicolas Fontaine

EN EFFET, ET JE TE PARLE MÊME PAS DU MANQUE DE DOCUMENTATION

Page 18: Rendering unit tests par Nicolas Fontaine

18

Visualiser la différence en cas d’échec d’un TU

Avant XCode8 il y avait le plugin alcatraz dédié Maintenant c’est un peu plus manuel (cf démo)

Page 19: Rendering unit tests par Nicolas Fontaine

19

Visualiser la différence en cas d’échec d’un TU

Définir une variable d’environnement « IMAGE_DIFF_DIR » Qui indique le dossier vers lequel enregistrer les snapshot des tests en échecs

Page 20: Rendering unit tests par Nicolas Fontaine

DÉMO

Composant « UnderlineTextfield »

Page 21: Rendering unit tests par Nicolas Fontaine

MERCI POUR VOTRE ATTENTION !

AVEZ-VOUS DES QUESTIONS ?

Contact : [email protected]