TESTS UNITAIRES DE RENDU
FBSNAPSHOTTESTCASE
Swift Nicolas 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 »
MERCI POUR VOTRE ATTENTION !
AVEZ-VOUS DES QUESTIONS ?
Contact : fontaine.nicolas34@gmail.com

Rendering unit tests par Nicolas Fontaine

  • 1.
    TESTS UNITAIRES DERENDU FBSNAPSHOTTESTCASE Swift Nicolas Fontaine
  • 2.
    PAPI ! RACONTEMOI COMMENT TU TESTES L’UI DE TES APPLICATIONS ?
  • 3.
    TU SAIS MONPETIT, LES TESTS UNITAIRES ET L’UI C’EST JAMAIS UNE HISTOIRE D’AMOUR FOLICHONNE
  • 4.
    MAIS ALORS… COMMENT TESTERFACILEMENT ET EFFICACEMENT L’UI ?
  • 5.
    ET BIEN LEPREMIER PAS… C’EST DE BIEN ISOLER SES COMPOSANTS GRAPHIQUES
  • 6.
  • 7.
    APRÈS… IL YA FACEBOOK !
  • 8.
  • 9.
    BON, POUR ÊTREPLUS PRÉCIS, IL Y A FBSNAPSHOTTESTCASE *reprend son souffle* UN FRAMEWORK CONÇU PAR
  • 10.
    OH !!! TU M’EXPLIQUESCOMMENT ÇA MARCHE ?
  • 11.
    11 Qu’est-ce que c’est? Original En lançant les TUs 12 Nov 2016 17 Nov 2016
  • 12.
    12 Comment ça marche? Ajouter FBSnapshotTestCase à votre target de tests : À la création d’un pod : Manuellement via le podfile :
  • 13.
    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.
    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.
    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.
  • 16.
    OLALA PAPI, ILSFAUT VRAIMENT QU’ILS APPRENNENT À NOMMER CORRECTEMENT CHEZ FACEBOOK…
  • 17.
    EN EFFET, ETJE TE PARLE MÊME PAS DU MANQUE DE DOCUMENTATION
  • 18.
    18 Visualiser la différenceen 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.
    19 Visualiser la différenceen 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
  • 20.
  • 21.
    MERCI POUR VOTREATTENTION ! AVEZ-VOUS DES QUESTIONS ? Contact : fontaine.nicolas34@gmail.com