Tests sur le parcours Objective-C

Apprends à tester tes exercices Objective-C sur Exercism


Exercism ne télécharge que le fichier de tests. Tu devras créer toi-même le fichier d'en-tête et le fichier source associés à l'exercice. Tu devras générer un fichier de projet Xcode contenant le fichier de tests, le fichier d'en-tête (.h) et le fichier source (.m). Sinon, tu peux utiliser un exécuteur de tests décrit ci-dessous.

Crée le projet dans Xcode

  • Lance Xcode et crée un nouveau projet.
  • Sélectionne OS X > Application, puis Command Line Tool.
  • Clique sur Next et donne un nom au projet ; il est conseillé d'utiliser ExerciseName.
  • Clique sur Next et enregistre le projet dans le répertoire de l'exercice d'Exercism.
  • Une fois le projet créé, clique sur Editor > Add Target.
  • Sélectionne OS X > Test, puis OS X Unit Testing Bundle.
  • Nomme la cible ExerciseName Tests.
  • Dans le panneau de gauche (appelé le navigator), ouvre le Project navigator, déplie le dossier ExerciseName Tests et ouvre le fichier ExerciseName_Tests.m.
  • Remplace son contenu par le fichier de tests que tu as récupéré depuis Exercism.
  • Dans ce fichier, remplace toutes les occurrences de "test_suite" par "ExerciseName_Tests".
  • Va dans la File Template library du panneau de droite (ou utilise CTRL+OPTION+CMD+1) et fais glisser le template Cocoa Class dans le dossier ExerciseName_Tests du Project navigator.
  • Nomme-le ExerciseName et sélectionne ExerciseName Tests comme cible.
  • Tu as maintenant deux nouveaux fichiers dans ton dossier ExerciseName_Tests : ExerciseName.h et ExerciseName.m.
  • Clique sur ton projet dans le Project navigator.
  • Clique sur ExerciseName Tests dans la liste des cibles.
  • Sélectionne Build Phases dans la navigation de l'éditeur.
  • Vérifie que tes deux fichiers .m figurent bien dans la liste Compile Sources.
  • Utilise CMD+5 pour aller dans le Test navigator.
  • Fais un clic droit sur le bundle nommé ExerciseName Tests et clique sur Enable ExerciseName_Tests.
  • Lance les tests en cliquant sur le triangle qui pointe vers la droite et qui apparaît quand tu survoles le bundle dans le Test navigator, ou utilise CMD+U.

Les tests seront lancés via Xcode.

Note : si tu reçois l'erreur « No visible @interface for ExerciseName declares the selector ExerciseSelector », c'est que tu as bien suivi les étapes, mais que tu n'as encore rien écrit dans ton ou tes fichiers d'en-tête et d'implémentation. Après avoir déclaré ta méthode dans le fichier .h et l'avoir définie dans le fichier .m, tes tests devraient remonter des erreurs plus utiles qui te guideront vers la résolution de l'exercice. Lis cette introduction aux classes Objective-C pour plus de détails.

Un exécuteur de tests

Au lieu de générer le fichier de projet à la main, tu peux utiliser un utilitaire exécuteur de tests écrit en Ruby, objc, qui créera pour toi un fichier de projet avec le fichier de tests, le fichier d'en-tête et le fichier source.

$ gem install objc

Lance les tests avec :

$ objc -x ExerciseName

(Remarque le flag -x/--xcodebuild, qui indique d'utiliser xcodebuild plutôt que xctool. Ce dernier ne fonctionne pas avec les dernières versions de Xcode.)

L'utilitaire objc utilise le nom de l'exercice pour trouver le fichier de tests, ExerciseNameTest.m, le fichier d'en-tête, ExerciseName.h, et le fichier source ExerciseName.m. Ces fichiers sont insérés dans un projet Xcode temporaire, puis xcodebuild est utilisé pour lancer les tests du projet.

Si objc t'évite d'avoir à lancer Xcode pour terminer ces exercices, les messages d'erreur et les retours via la ligne de commande restent moins clairs que dans l'interface de Xcode.