Entonces ... Estoy intentando configurar las pruebas de unidad en mi aplicación de iPhone, pero tengo algunos problemas. Estoy intentando probar mis clases de modelo, pero heredan directamente de NSManagedObject. Estoy seguro de que esto es un problema, pero no sé cómo evitarlo.Modelo de prueba de unidades Clases que heredan de NSManagedObject
Todo es la construcción y en funcionamiento como se esperaba, pero me sale este error cuando se llama a cualquier método en la clase que soy prueba:
Unknown.m:0:0 unrecognized selector sent to instance 0xc2b120
Si sigo this structure para crear mi objeto en mis pruebas que termino con otro error por completo, pero todavía no me ayuda.
Si instanciar mi modelo como este:
entry = [[TimeEntry alloc]
initWithEntity:nil
insertIntoManagedObjectContext:nil];
Entonces termino con este error en tiempo de ejecución:
An NSManagedObject of class 'TimeEntry' must have a valid NSEntityDescription.
si trato de esta manera:
entry = [[TimeEntry alloc] init];
Luego termino con este error:
unrecognized selector sent to instance 0xc2b120
Y si sigo el patrón laid out here:
model = [[NSManagedObjectModel mergedModelFromBundles: nil] retain];
NSLog(@"model: %@", model);
coord = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: model];
store = [coord addPersistentStoreWithType: NSInMemoryStoreType
configuration: nil
URL: nil
options: nil
error: NULL];
ctx = [[NSManagedObjectContext alloc] init];
[ctx setPersistentStoreCoordinator: coord];
entry = (TimeEntry *)[NSEntityDescription insertNewObjectForEntityForName:@"TimeEntry" inManagedObjectContext:ctx];
Entonces me sale este error:
could not locate an entity named 'TimeEntry' in this model.
Básicamente mi pregunta es la siguiente: ¿cómo puedo probar una clase que hereda de NSManagedObject?
favor editar su pregunta para mostrar cómo se está instanciar la subclase NSManagedObject. –
Bien, avíseme si eso ayuda. Gracias. –