tutorial objective introduccion historia español caracteristicas objective-c xcode unit-testing linker ocunit

objective-c - objective - xcode manual pdf



¿Error de enlace para pruebas unitarias con XCode 4? (1)

Su paquete de prueba necesita configuraciones adicionales:

  • Establezca Bundle Loader en $(BUILT_PRODUCTS_DIR)/AppName.app/AppName (reemplazando AppName en ambos lugares con el nombre de su aplicación)
  • Establecer Test Host en $(BUNDLE_LOADER)

(Si crea un proyecto desde cero y habilita las pruebas unitarias, estas se configuran para usted. Pero si agrega un paquete de prueba unitaria a un proyecto existente, no lo son).

Quiero escribir algunas pruebas de unidades lógicas para clases en mi aplicación XCode. En Xcode 4, hice clic en el nombre del proyecto en Project Navigator, y desde la parte inferior hice clic en Add Target. Elegí "Cocoa Touch Unit Testing Bundle" en Otro, le doy al nuevo objetivo un "nombre de producto" de "pruebas" y lo termino.

Como la clase que deseo probar se compila como parte de mi objetivo de aplicación existente, para mi nuevo objetivo de "pruebas", voy inmediatamente a la pestaña Crear fases y agrego mi destino de aplicación existente como la única dependencia de destino.

Luego voy al archivo creado tests.m, importo la clase que quiero probar (debajo de ReleasePlanManager , y llamo a uno de sus métodos. Pero el enlazador falla con un error como:

Undefined symbols for architecture i386: "_OBJC_CLASS_$_ReleasePlanManager", referenced from: objc-class-ref in tests.o ld: symbol(s) not found for architecture i386 collect2: ld returned 1 exit status

Entonces, no se puede encontrar la clase, aunque (desde mi entendimiento) agregar el objetivo de la aplicación (de la cual es parte) debería ser suficiente.

Cualquier ayuda sería muy apreciada. ¡Gracias!