En la mayoría de mis clases que trabajan con valores por defecto que ponga los valores predeterminados del objeto configurable:¿Cómo probar con NSUserDefaults?
@property(retain) NSUserDefaults *defaults;
Esto se supone que hace la prueba más fácil:
// In a nearby test class:
- (void) setUp {
[super setUp];
NSUserDefaults *isolatedDefaults = [[NSUserDefaults alloc] init];
[someObjectBeingTested setDefaults:isolatedDefaults];
}
Pero ahora que he descubierto a continuación, cuando se crea un nuevo objeto predeterminado, ya hay algunos valores en él. ¿Es eso posible? Pensé que podría crear un objeto vacío predeterminado aislado llamando al -init
. ¿Tengo algún error en algún lugar del código de prueba, o realmente tengo que hacer algo más complejo (como anotaciones o burlas) si quiero probar mi código basado en los valores predeterminados?
¡Gracias por crear esto! – Palimondo
muy agradable, gracias! Ahora estoy usando tu clase, pero en lugar de inyectar 'NSUserDefaults' como un param a' someObjectBeingTested', estoy usando 'Kiwi' con su habilidad de burlarse de stub. Usando algo como: 'id transientDefaults = [NSUserDefaults transientDefaults]; [NSUserDefaults stub: @selector (standardUserDefaults) andReturn: transientDefaults]; ' – kernix