Как протестировать с NSUserDefaults?

В большинстве моих классов, которые работают со значениями по умолчанию, я делаю объект значений по умолчанию устанавливаемым:

@property(retain) NSUserDefaults *defaults;

Это, как предполагается, делает тестирование легче:

// In a nearby test class:
- (void) setUp {
    [super setUp];
    NSUserDefaults *isolatedDefaults = [[NSUserDefaults alloc] init];
    [someObjectBeingTested setDefaults:isolatedDefaults];
}

Но теперь я узнал затем, когда я создаю новый объект значений по умолчанию, уже существуют некоторые значения в нем. Это возможно? Я думал, что мог создать пустой, изолированный объект значений по умолчанию путем вызова -init. У меня есть ошибка где-нибудь в коде тестирования, или я должен действительно сделать что-то более сложное (как блокирование или насмешка), если я хочу протестировать свой основанный на значениях по умолчанию код?

16
задан zoul 20 October 2010 в 13:03
поделиться