0

から値を読み書きするメソッドをテストしたいと思います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 を使用すると、最後の行で、クラス メソッドがなく、インスタンス 1 しかないというエラーが表示されます。スタブオブジェクトがない限り、このように取得することは合法ですか?

[[NSUserDefaults class] clearStubs];
4

1 に答える 1