Я хотел бы протестировать метод, который считывает и записывает значение из NSUserDefaults
. Вот как выглядит метод чтения:
+ (NSDate *)initialImportDate
{
return [[NSUserDefaults standardUserDefaults] objectForKey:STBInitialImportDateKey];
}
Я хочу заглушить [NSUserDefaults standardUserDefaults]
, и я делал это раньше, и это работало отлично. Предполагая, что мы заглушаем метод класса, у нас есть четкие заглушки класса.
it(@"should load date from NSUserDefaults", ^{
NSDate *expectedDate = [NSDate date];
id mockNSDefaults = [NSUserDefaults nullMock];
[NSUserDefaults stub:@selector(standardUserDefaults) andReturn:mockNSDefaults];
[[mockNSDefaults should] receive:@selector(objectForKey:) andReturn:expectedDate withArguments:@"ImportDate"];
[[[Importer initialImportDate] should] equal:expectedDate];
[KWMock clearStubs];
});
При использовании Kiwi 2.2.4 я получаю ошибку в последней строке, что нет метода класса, только один экземпляр. Поскольку у меня нет объекта-заглушки, законно ли это?
[[NSUserDefaults class] clearStubs];