我如何让OCMock让我在UIKit类上存根类别方法?

时间:2009-07-13 22:56:09

标签: iphone unit-testing uikit ocmock

我正在尝试在我的应用程序测试中模拟UITabBarController。我在另一个文件中的其他地方定义的类上有一个类别方法,它在我的测试类中与ocmock一起导入。我正在尝试的是这样的:

- (void) setUp
{
    id mockTabController = [OCMockObject mockForClass:[UITabBarController class]];
    [[[mockTabController stub] andReturn:nil] displayedViewController]; 
    // displayedViewController is the category method
}

但是当我这样做并且测试到达那个存根调用时,我得到一个错误说:

[NSProxy doesNotRecognizeSelector:displayedViewController] called!

我是否需要做些什么来让ocmock识别内置框架类中的类别方法?

1 个答案:

答案 0 :(得分:16)

我发现了问题;具有在其中定义的类类别的文件不在我的项目中的正确目标中。它是主要目标,但不是单元测试目标。将它添加到正确的位置使它在游泳中工作。