Загрузка NSPersistentDocument из модульного теста - PullRequest
3 голосов
/ 21 августа 2011

Я пытаюсь написать интеграционный тест с использованием 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 Ответ

1 голос
/ 10 марта 2012

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

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

MyDocument *mdoc = [[MyDocument alloc] init];
STAssertTrue([mdoc readFromURL:docUrl ofType:@"dfb" error:&error],
             @"File not loaded: %@", [error localizedDescription]);
...