当前位置:  开发笔记 > IOS > 正文

如何将OCMock对象与调用isKindOfClass的代码一起使用?

如何解决《如何将OCMock对象与调用isKindOfClass的代码一起使用?》经验,为你挑选了1个好方法。

我想用OCMock测试一些代码.

代码的内部是调用[NSObject isKindOfClass]我提供给代码的模拟对象,如下所示:

if ([object isKindOfClass:[FancyClass class]]) { ...}

但是,当我提供如下所示的基于OCMockObject的模拟时:

mock = [OCMockObject mockForClass:[FancyClass class]];

它似乎没有通过isKindOfClass测试.

有什么建议?



1> Peter Hosey..:

一般规则是,如果你正在调用isKindOfClass:并且你没有通过其中一个plist类(例如,NSString或NSNumber),那么你就是在做错了.

如果该方法根据其参数所在的类执行两个或更多不同的操作,则将其复制到多个方法中,并分别测试每个方法.

如果该方法只做一件事,但必须根据对象的不同而与对象进行不同的交互,那么:

    制定协议.(Obj-C中的协议在其他一些OO语言中称为"接口",例如Java.)

    使许多类都符合协议.如有必要,使用类别从外部添加必要的方法.

    使被测方法检查是否符合协议,代替当前isKindOfClass:检查.

    使被测方法使用协议中的方法.


建议列表似乎很好,但我不得不反对使用isKindofClass应该只采取基础类是不对的.例如,当通过nib加载的数组并查找你创建的UITableViewCell时,它非常有用......
推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有