OCMock不存根NSBundle方法

时间:2015-04-13 15:58:42

标签: objective-c unit-testing nsbundle xctest ocmock

我最近使用OCMock进行单元测试。我需要存根 来自objectForInfoDictionaryKey:的{​​{1}}方法。我做了以下事情:

NSBundle

这是我想要存根的电话:

self.bundleMock = OCMClassMock([NSBundle class]);
OCMStub([self.bundleMock objectForInfoDictionaryKey:@"GITHash"]).andReturn(@"c424242");
;

但似乎没有任何东西存在,在运行时我仍然有"正确"值。

我做错了什么?

1 个答案:

答案 0 :(得分:6)

我可能会记错,但我认为您需要使用partialMockForObject来模拟[NSBundle mainBundle]返回的实例,而不是模仿类NSBundle,因为objectForInfoDictionaryKey是一个实例方法,而不是类方法。