【发布时间】:2014-06-18 22:08:40
【问题描述】:
我想测试从NSUserDefaults 读取和写入值的方法。下面是 read 方法的样子:
+ (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];
【问题讨论】:
标签: objective-c unit-testing kiwi