Pruebas en el track de Objective-C

Aprende a probar tus ejercicios de Objective-C en Exercism


Exercism solo descargará un fichero de test. Tendrás que crear a mano el fichero de cabecera y el fichero de código fuente asociados al ejercicio. Tendrás que generar un fichero de proyecto de Xcode con el fichero de test, el fichero de cabecera (.h) y el fichero de código fuente (.m). Como alternativa, puedes usar una utilidad de ejecución de tests que se describe más abajo.

Crear el proyecto en Xcode

  • Abre Xcode y crea un proyecto nuevo.
  • Selecciona OS X > Application y, a continuación, Command Line Tool.
  • Haz clic en Next y dale un nombre al proyecto; se recomienda usar ExerciseName.
  • Haz clic en Next y guarda el proyecto en el directorio del ejercicio de Exercism.
  • Ahora que el proyecto está creado, haz clic en Editor > Add Target.
  • Selecciona OS X > Test y, a continuación, OS X Unit Testing Bundle.
  • Ponle al target el nombre ExerciseName Tests.
  • En el panel izquierdo (conocido como el navegador), abre el Project navigator, despliega la carpeta ExerciseName Tests y abre el fichero ExerciseName_Tests.m.
  • Sustituye su contenido por el fichero de test que has descargado de Exercism.
  • En ese fichero, sustituye todas las apariciones de «test_suite» por «ExerciseName_Tests».
  • Ve a la File Template library en el panel derecho (o usa CTRL+OPTION+CMD+1) y arrastra la plantilla Cocoa Class a la carpeta ExerciseName_Tests del Project navigator.
  • Ponle el nombre ExerciseName y selecciona ExerciseName Tests como su target.
  • Ahora tendrás dos ficheros nuevos en tu directorio ExerciseName_Tests: ExerciseName.h y ExerciseName.m.
  • Haz clic en tu proyecto en el Project navigator.
  • Haz clic en ExerciseName Tests en la lista de targets.
  • Selecciona Build Phases en la navegación del editor.
  • Comprueba que tus dos ficheros .m están en la lista Compile Sources.
  • Usa CMD+5 para ir al Test navigator.
  • Haz clic con el botón derecho en el bundle llamado ExerciseName Tests y haz clic en Enable ExerciseName_Tests.
  • Ejecuta los tests haciendo clic en el triángulo que apunta a la derecha y que aparece al pasar el ratón por encima del bundle en el Test navigator, o usa CMD+U.

Los tests se ejecutarán a través de Xcode.

Nota: Si recibes el error «No visible @interface for ExerciseName declares the selector ExerciseSelector», has seguido los pasos correctamente, pero todavía no has escrito nada en tus ficheros de cabecera o de implementación. Después de declarar tu método en el fichero .h y definirlo en el fichero .m, tus tests deberían generar errores más útiles que te guiarán para completar el ejercicio. Lee esta introducción a las clases de Objective-C para obtener información más detallada.

Un ejecutor de tests

Una alternativa a generar el fichero de proyecto a mano es usar una utilidad de ejecución de tests escrita en ruby, objc, que creará por ti un fichero de proyecto con el fichero de test, el fichero de cabecera y el fichero de código fuente.

$ gem install objc

Ejecuta los tests con:

$ objc -x ExerciseName

(Fíjate en el flag -x/--xcodebuild, que indica que se use xcodebuild en lugar de xctool. Este último no funciona con las últimas versiones de Xcode.)

La utilidad objc usa el nombre del ejercicio para encontrar el fichero de test, ExerciseNameTest.m, el fichero de cabecera, ExerciseName.h, y el fichero de código fuente ExerciseName.m. Los ficheros se insertan en un proyecto de Xcode temporal y, a continuación, se usa xcodebuild para ejecutar los tests del proyecto.

Aunque objc hace que nunca tengas que abrir Xcode para completar estos ejercicios, los mensajes de error y la información que recibes desde la línea de comandos no son tan claros como los de la interfaz de Xcode.