我最近使用 OCMock 进行单元测试。我需要 stub
objectForInfoDictionaryKey:
来自 NSBundle
的方法。我做了以下事情:
self.bundleMock = OCMClassMock([NSBundle class]);
OCMStub([self.bundleMock objectForInfoDictionaryKey:@"GITHash"]).andReturn(@"c424242");
;
这是我想要 stub 的调用:
NSString * appHashString = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"GITHash"];
但似乎没有任何东西被 stub ,在运行时我仍然有“正确”的值。
我做错了什么?
最佳答案
我可能记错了,但我认为你需要使用 partialMockForObject
来模拟 [NSBundle mainBundle]
返回的实例,而不是模拟类 NSBundle
因为 objectForInfoDictionaryKey
是实例方法,而不是类方法。
关于objective-c - OCMock 不 stub NSBundle 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29609842/