不能Stub方法"标题"因为模拟类OCMock中不存在这样的方法

时间:2014-06-14 23:43:19

标签: ios objective-c ocmock

我正在写这个单元测试:

   - (void)testCellValues
{
    id bookMock = [OCMockObject mockForClass:[LBBook class]];
    [[[bookMock stub] andReturn:@"Book Title"] title];
}

当然之后会有一些代码。但此时我执行测试时遇到此错误:

[LBReviewsDashboardDataSourceTest testCellValues] failed: OCMockObject[LBBook]: cannot stub or expect method 'title' because no such method exists in the mocked class.

LBBook类的属性为title。这是LBBook课程:

@interface LBBook : LBManagedObjectFactory

@property (nonatomic, retain) NSString * title;

@end

我无法意识到这里发生了什么,为什么OCMock会在类具有标题attribute时返回该错误?

提前致谢。

1 个答案:

答案 0 :(得分:5)

CoreData使用动态属性。这些在OCMock中尚未得到适当支持。可以改为存根valueForKey:。另请参阅:OCMock: stub a @dynamic propertyOCMock with Core Data dynamic properties problem