2010-07-01 7 views
5

Estoy realizando pruebas unitarias en la aplicación de mi iPhone usando OCUnit en XCode 3.2.3 e iOS 4.0. He configurado satisfactoriamente mi entorno de prueba para aprobar y reprobar las pruebas básicas de forma apropiada, pero cuando importo mis propios archivos (en este caso, "Cuenta de usuario.h", no compila y me dice:Archivos importados no reconocidos en OCUnit

"_OBJC_CLASS_ $ _UserAccount ", a la que se hace referencia de:

Luego dice" Símbolo (s) no encontrado ". Esto me parece una especie de error de enlazador, pero no tengo idea de lo que está pasando. He construido y limpiado todos los objetivos. veces, pero fue en vano. Aquí está mi código de prueba:

#import "SomeTestCase.h" 
#import "UserAccount.h" 

@implementation SomeTestCase 

- (void)testUserAccount 
{ 
// UserAccount.m // 

UserAccount *testAccount = [[UserAccount alloc] initWithUsername:@"" password:@"" deviceToken:@""]; 
[testAccount registerNew]; 
NSLog(@"USERID = %@", testAccount.userID); 
STAssertEquals([testAccount login], NO, @"Failure: Login should fail with blank username and password."); // should fail with no username or password 

UserAccount *testAccount2 = [[UserAccount alloc] initWithUsername:@"user" password:@"" deviceToken:@""]; 
STAssertEquals([testAccount2 login], NO, @"Failure: Login should fail with blank password.");// should fail with no password 

UserAccount *testAccount3 = [[UserAccount alloc] initWithUsername:@"" password:@"pass" deviceToken:@""]; 
STAssertEquals([testAccount3 login], NO, @"Failure: Login should fail with blank username.");// should fail with no password 

} 

@end 

Cualquier consejo sería muy útil eciated. Gracias!

-Matt

Respuesta

2

yo supongo que UserAccount.m no ha sido añadido a la meta de pruebas. Eso causará el error "Símbolos no encontrados". He visto tiempos con objetivos múltiples en los que Xcode reconoce encabezados aunque el archivo de implementación no sea parte del objetivo.

Si eso no funciona, intente vaciar el caché Xcode con Xcode>Empty Caches....

+0

¡Gracias! Agregar la fuente al objetivo hizo el truco. – mag725

3

en Xcode 4, al menos, que no deberíaincluir sus archivos .m en su aplicación prueba objetivo. La forma correcta de hacerlo es:

  1. su proyecto (arriba a la izquierda) -> Objetivos -> Su destino de prueba -> Destino Dependencias -> + Su objetivo principal aplicación
  2. Cambiar a construir la pestaña de configuración -> Vinculación -> lote cargador -> $ (BUILT_PRODUCTS_DIR) /YourAppName.app/YourAppName

una buena manera de ver cómo se hace esto correctamente es crear un nuevo proyecto XCode 4 con pruebas unitarias y luego ver cómo la prueba el objetivo está configurado. Notará que los archivos .m de la aplicación no están incluidos en el objetivo de la prueba.

+0

gracias, eso ayudó mucho –

Cuestiones relacionadas