Rendering unit tests par Nicolas Fontaine
Transcript of Rendering unit tests par Nicolas Fontaine
TESTS UNITAIRES DE RENDU FBSNAPSHOTTESTCASE
SwiftNicolas Fontaine
PAPI ! RACONTE MOI COMMENT TU TESTES L’UI DE TES APPLICATIONS ?
TU SAIS MON PETIT, LES TESTS UNITAIRES ET L’UI C’EST JAMAIS UNE HISTOIRE D’AMOUR
FOLICHONNE
MAIS ALORS… COMMENT TESTER FACILEMENT ET
EFFICACEMENT L’UI ?
ET BIEN LE PREMIER PAS…
C’EST DE BIEN ISOLER SES COMPOSANTS GRAPHIQUES
OK ET APRÈS ?…
APRÈS… IL Y A FACEBOOK !
TU M’EXPLIQUES LE RAPPORT ?
BON, POUR ÊTRE PLUS PRÉCIS, IL Y A FBSNAPSHOTTESTCASE
*reprend son souffle*
UN FRAMEWORK CONÇU PAR
OH !!! TU M’EXPLIQUES COMMENT ÇA MARCHE ?
11
Qu’est-ce que c’est ?
Original En lançant les TUs
12 Nov 2016
17 Nov 2016
12
Comment ça marche ?
Ajouter FBSnapshotTestCase à votre target de tests :
À la création d’un pod :
Manuellement via le podfile :
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
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
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.
OLALA PAPI, ILS FAUT VRAIMENT QU’ILS APPRENNENT À NOMMER CORRECTEMENT CHEZ
FACEBOOK…
EN EFFET, ET JE TE PARLE MÊME PAS DU MANQUE DE DOCUMENTATION
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)
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
DÉMO
Composant « UnderlineTextfield »