Testare sul track Objective-C

Scopri come testare i tuoi esercizi di Objective-C su Exercism


Exercism scaricherà solo un file di test. Dovrai creare manualmente il file header e il file sorgente associati all'esercizio. Dovrai generare un file di progetto Xcode con il file di test, il file header (.h) e il file sorgente (.m). In alternativa, puoi usare un'utilità test runner descritta più avanti.

Creare il progetto in Xcode

  • Avvia Xcode e crea un nuovo progetto.
  • Seleziona OS X > Application e poi Command Line Tool.
  • Fai clic su Next e assegna un nome al progetto: è consigliabile usare ExerciseName.
  • Fai clic su Next e salva il progetto nella directory degli esercizi di Exercism.
  • Ora che il progetto è stato creato, fai clic su Editor > Add Target.
  • Seleziona OS X > Test e seleziona OS X Unit Testing Bundle.
  • Chiama il target ExerciseName Tests.
  • Nel pannello di sinistra (noto come navigator), apri il Project navigator, espandi la cartella ExerciseName Tests e apri il file ExerciseName_Tests.m.
  • Sostituisci il suo contenuto con il file di test che hai scaricato da Exercism.
  • In quel file, sostituisci tutte le occorrenze di "test_suite" con "ExerciseName_Tests".
  • Vai alla File Template library nel pannello di destra (oppure usa CTRL+OPTION+CMD+1) e trascina il template Cocoa Class nella cartella ExerciseName_Tests del Project navigator.
  • Chiamalo ExerciseName e seleziona ExerciseName Tests come suo target.
  • Ora avrai due nuovi file nella directory ExerciseName_Tests: ExerciseName.h e ExerciseName.m.
  • Fai clic sul tuo progetto nel Project navigator.
  • Fai clic su ExerciseName Tests nell'elenco dei target.
  • Seleziona Build Phases nella navigazione dell'editor.
  • Verifica che entrambi i tuoi file .m siano nell'elenco Compile Sources.
  • Usa CMD+5 per andare al Test navigator.
  • Fai clic con il tasto destro sul bundle chiamato ExerciseName Tests e fai clic su Enable ExerciseName_Tests.
  • Esegui i test facendo clic sul triangolo che punta a destra e che appare quando passi il mouse sul bundle nel Test navigator, oppure usa CMD+U.

I test verranno eseguiti tramite Xcode.

Nota: Se ricevi l'errore «No visible @interface for ExerciseName declares the selector ExerciseSelector,» hai seguito i passaggi correttamente, ma non hai ancora scritto nulla nel file header o di implementazione. Dopo aver dichiarato il metodo nel file .h e averlo definito nel file .m, i test dovrebbero generare errori più utili che ti guideranno verso il completamento dell'esercizio. Per informazioni più approfondite, leggi questa introduzione alle classi di Objective-C.

Un test runner

Un'alternativa alla generazione manuale del file di progetto è usare un'utilità test runner scritta in Ruby, objc, che creerà per te un file di progetto con il file di test, il file header e il file sorgente.

$ gem install objc

Esegui i test con:

$ objc -x ExerciseName

(Nota il flag -x/--xcodebuild, che specifica di usare xcodebuild invece di xctool. Quest'ultimo non funziona con le ultime versioni di Xcode.)

L'utilità objc usa il nome dell'esercizio per trovare il file di test, ExerciseNameTest.m, il file header, ExerciseName.h, e il file sorgente ExerciseName.m. I file vengono inseriti in un progetto Xcode temporaneo e poi xcodebuild viene usato per eseguire i test del progetto.

objc ti evita di dover avviare Xcode per completare questi esercizi. I messaggi di errore e il feedback dalla riga di comando, però, non sono chiari come quelli dell'interfaccia utente di Xcode.