Невозможно заглушить метод "title", потому что такого метода не существует в ложном классе 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 ответ

Решение

CoreData использует динамические свойства. Они еще не поддерживаются должным образом в OCMock. Можно заглушки valueForKey: вместо. См. Также: OCMock: заглушка @dynamic свойство и OCMock с проблемой динамических свойств Core Data

Другие вопросы по тегам