He estado siguiendo la documentación de Apple sobre pruebas de unidad de escritura para el iPhone, y la rutina no parece funcionar de inmediato. No estoy seguro de entender dónde la prueba unitaria va a obtener la referencia al delegado de la aplicación.iPhone - Recuperación de recursos para pruebas de unidades lógicas
Mis dependencias son como los siguientes: My_Program_target -> UnitTesting_target -> UnitTests_bundle
El siguiente fragmento de código es donde falla la aserción. Estoy muy familiarizado con CPPUNIT, pero tengo problemas para entender cómo se cruza.
- (void) testAppDelegate {
id yourApplicationDelegate = [[UIApplication sharedApplication] delegate];
STAssertNotNil(yourApplicationDelegate, @"UIAppliation failed to find the AppDelegate");
}
Además:
he decidido en mi acercamiento a hacer una prueba de la lógica. Intento leer en un archivo XML, pero no estoy teniendo suerte resolviendo el paquete, que me proporcionará la ruta por la que puedo acceder a mi archivo. He intentado pegar en la salida de la ruta por allBundles, pero esa ruta tampoco parece funcionar. A continuación se muestra la ejecución de lo que estoy en mi prueba (se puede ver el estado de depuración que estoy usando para dar salida a los caminos de los paquetes):
NSLog(@"BundlePaths: %@", [NSBundle allBundles]);
NSString * path = [[NSBundle bundleWithPath:@"$(TARGET_BUILD_DIR)"] pathForResource:@"SimpleTestList" ofType:@"plist"];
STAssertNotNil(path, @"Bundle Location couldn't find the file specified");
Esencialmente, la aserción en el camino no tiene éxito, pero yo' No estoy seguro de qué poner para la ruta o directorio para hacer referencia a mi paquete unitTest que he indicado para copiar los recursos del paquete. Llamar a [NSBundle mainBundle] tampoco funciona.
Aprovechando la solución de Gary, se me ocurrieron las siguientes [macros de preprocesador [Xcode: PRUEBA frente a DEBUG] (http://stackoverflow.com/questions/6748087/xcode-test-vs-debug-preprocessor-macros/6763597 # 6763597). – ma11hew28