Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何让OCMock允许我在UIKit类上存根category方法?_Iphone_Unit Testing_Uikit_Ocmock - Fatal编程技术网

Iphone 如何让OCMock允许我在UIKit类上存根category方法?

Iphone 如何让OCMock允许我在UIKit类上存根category方法?,iphone,unit-testing,uikit,ocmock,Iphone,Unit Testing,Uikit,Ocmock,我试图在我的应用程序测试中模拟一个UITabBarController。我在另一个文件中定义了该类的category方法,该文件与测试类中的ocmock一起导入。我想说的是: - (void) setUp { id mockTabController = [OCMockObject mockForClass:[UITabBarController class]]; [[[mockTabController stub] andReturn:nil] displayedViewCon

我试图在我的应用程序测试中模拟一个UITabBarController。我在另一个文件中定义了该类的category方法,该文件与测试类中的ocmock一起导入。我想说的是:

- (void) setUp
{
    id mockTabController = [OCMockObject mockForClass:[UITabBarController class]];
    [[[mockTabController stub] andReturn:nil] displayedViewController]; 
    // displayedViewController is the category method
}
但是,当我这样做并且测试到达那个存根调用时,我得到一个错误,说:

[NSProxy doesNotRecognizeSelector:displayedViewController] called!

我是否需要做一些特定的事情来允许ocmock识别内置框架类上的category方法?

我解决了这个问题;在中定义了类类别的文件不在项目的正确目标中。它位于主要目标中,但不在单元测试目标中。将其添加到正确的位置使其工作顺利。

感谢您为自己的解决方案编写文档。它帮助了我:)