Загрузка 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]);