Cómo probar en la pista de Objective-C

Aprende a probar tus ejercicios de Objective-C en Exercism


Exercism solo descargará un archivo de pruebas. Tendrás que crear manualmente el archivo de encabezado y el archivo fuente asociados con el ejercicio. También tendrás que generar un archivo de proyecto de Xcode que incluya el archivo de pruebas, el archivo de encabezado (.h) y el archivo fuente (.m). Como alternativa, puedes usar un ejecutor de pruebas que se describe más abajo.

Crear el proyecto en Xcode

  • Abre Xcode y crea un proyecto nuevo.
  • Selecciona OS X > Application y luego Command Line Tool.
  • Haz clic en Next y, preferentemente, ponle como nombre del proyecto el ExerciseName.
  • Haz clic en Next y guarda el proyecto en el directorio del ejercicio de Exercism.
  • Ya que creaste el proyecto, haz clic en Editor > Add Target.
  • Selecciona OS X > Test y luego OS X Unit Testing Bundle.
  • Nombra el target ExerciseName Tests.
  • En el panel izquierdo (conocido como el navegador), abre el Project navigator, despliega la carpeta ExerciseName Tests y abre el archivo ExerciseName_Tests.m.
  • Reemplaza su contenido con el archivo de pruebas que obtuviste de Exercism.
  • En ese archivo, reemplaza 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 en el Project navigator.
  • Nómbralo ExerciseName y selecciona ExerciseName Tests como su target.
  • Ahora tendrás dos archivos 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.
  • Confirma que tus dos archivos .m aparezcan en la lista Compile Sources.
  • Usa CMD+5 para ir al Test navigator.
  • Haz clic derecho en el bundle llamado ExerciseName Tests y haz clic en Enable ExerciseName_Tests.
  • Ejecuta las pruebas haciendo clic en el triángulo que apunta a la derecha que aparece al pasar el cursor sobre el bundle en el Test navigator, o usa CMD+U.

Las pruebas se ejecutarán a través de Xcode.

Nota: Si recibes el error «No visible @interface for ExerciseName declares the selector ExerciseSelector,», seguiste los pasos correctamente, pero todavía no escribiste nada en tu(s) archivo(s) de encabezado o de implementación. Después de declarar tu método en el archivo .h y definirlo en el archivo .m, tus pruebas 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 pruebas

Una alternativa a generar manualmente el archivo de proyecto es usar un ejecutor de pruebas escrito en ruby, objc, que crea por ti un archivo de proyecto con el archivo de pruebas, el archivo de encabezado y el archivo fuente.

$ gem install objc

Ejecuta las pruebas con:

$ objc -x ExerciseName

(Fíjate en el flag -x/--xcodebuild, que especifica usar xcodebuild en lugar de xctool. Este último no funciona con las versiones más recientes de Xcode).

La utilidad objc usa el nombre del ejercicio para encontrar el archivo de pruebas, ExerciseNameTest.m, el archivo de encabezado, ExerciseName.h, y el archivo fuente ExerciseName.m. Los archivos se insertan en un proyecto temporal de Xcode y luego se usa xcodebuild para ejecutar las pruebas del proyecto.

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