我想用OCMock测试一些代码。
代码的内部在我提供给代码的模拟对象上调用[NSObject isKindOfClass]
,如下所示:
if ([object isKindOfClass:[FancyClass class]]) { ...}
但是,当我提供如下所示的基于OCMockObject的模拟时:
mock = [OCMockObject mockForClass:[FancyClass class]];
它似乎没有通过isKindOfClass
测试。
有什么建议吗?
答案 0 :(得分:8)
一般规则是,如果你正在调用isKindOfClass:
并且你没有通过其中一个plist类(例如,NSString或NSNumber),那么你就是在做错了。
如果该方法根据其参数所在的类执行两个或更多不同的操作,请将其复制到多个方法中,并分别测试每个方法。
如果该方法只做一件事,但必须根据对象的不同而与对象进行不同的交互,那么:
isKindOfClass:
检查。答案 1 :(得分:2)
怎么样:
[[[mock stub] andReturnValue:OCMOCK_VALUE((BOOL) {YES})] isKindOfClass:[FancyClass class]];