我正在写这个单元测试:
- (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
时返回该错误?
提前致谢。
答案 0 :(得分:5)
CoreData使用动态属性。这些在OCMock中尚未得到适当支持。可以改为存根valueForKey:
。另请参阅:OCMock: stub a @dynamic property和OCMock with Core Data dynamic properties problem