【发布时间】:2013-10-10 05:20:39
【问题描述】:
我知道 OCMock 版本 2.1+ supports 开箱即用的存根类方法。但由于某种原因,它不适用于我。为了确保我隔离了问题,我只是克隆了示例OCMock project(明确标记为版本 2.2.1)并简单地将其添加到 testMasterViewControllerDeletesItemsFromTableView 中:
id detailViewMock = [OCMockObject mockForClass:[DetailViewController class]];
[[[detailViewMock stub] andReturn:@"hello"] helloWorld];
在DetailViewController.h我加了:
+ (NSString *)helloWorld;
和DetailViewController.m:
+ (NSString *)helloWorld {
return @"hello world";
}
但我不断收到错误:
*** -[NSProxy doesNotRecognize Selector:helloWorld] called!
要查看问题的演示,请克隆 this repo 以查看发生了什么。
【问题讨论】:
-
这看起来应该可以工作...我认为 DetailViewController.h 包含在您的测试中?你可以不使用模拟调用“helloWorld”吗?
-
是的
DetailViewController.h包含在测试中,并将 Class 方法存根替换为常规存根(相同的 hello world 签名等)......但它不起作用...... -
@BenFlynn 我刚刚创建了一个非常简单的repo 来演示我遇到的问题。如果您能快速浏览一下,那就太好了!
标签: ios objective-c xcode5 ocunit ocmock