Загрузка NSPersistentDocument из модульного теста

Я пытаюсь написать интеграционный тест с использованием OCUnit/SenTest Framework, с которым я чувствую себя относительно комфортно. Тест касается загрузки подкласса NSPersistentDocument, который опирается на управляемую объектную модель CoreData, которая успешно импортируется.

Какой лучший способ пойти по этому поводу? Я пытался весь день, и это была одна проблема за другой. Делать это (обрезать для релевантности):

NSManagedObjectContext *moc = [NSManagedObjectContext new];
[moc setPersistentStoreCoordinator:coordinator];
MyDocument *mdoc = [MyDocument new];
[mdoc setManagedObjectContext:moc];
STAssertTrue([mdoc readFromURL:docUrl ofType:@"dfb" error:&error], @"File not loaded: %@", [error localizedDescription]);

не приводит к ошибке, но контекст управляемого объекта документа является пустым, то есть [[mdoc.managedObjectContext registeredObjects] count] это ноль.

Запуск основного приложения (не в модульных тестах) работает как положено. Файл в docUrl загружается, и интерфейс заполняется правильно.

Что мне не хватает?

1 ответ

Решение

Ваш код, кажется, смешивает два стиля инициализации. NSPersistentDocument устанавливает свой базовый стек данных автоматически, в -init,

Попробуйте это вместо этого:

MyDocument *mdoc = [[MyDocument alloc] init];
STAssertTrue([mdoc readFromURL:docUrl ofType:@"dfb" error:&error],
             @"File not loaded: %@", [error localizedDescription]);
Другие вопросы по тегам