В большинстве моих классов, которые работают со значениями по умолчанию, я делаю объект значений по умолчанию устанавливаемым:
@property(retain) NSUserDefaults *defaults;
Это, как предполагается, делает тестирование легче:
// In a nearby test class:
- (void) setUp {
[super setUp];
NSUserDefaults *isolatedDefaults = [[NSUserDefaults alloc] init];
[someObjectBeingTested setDefaults:isolatedDefaults];
}
Но теперь я узнал затем, когда я создаю новый объект значений по умолчанию, уже существуют некоторые значения в нем. Это возможно? Я думал, что мог создать пустой, изолированный объект значений по умолчанию путем вызова -init
. У меня есть ошибка где-нибудь в коде тестирования, или я должен действительно сделать что-то более сложное (как блокирование или насмешка), если я хочу протестировать свой основанный на значениях по умолчанию код?