Я только что столкнулся с точно такой же проблемой, унаследовав некоторый код, который делает доступ к сырому sqlite очень похожим образом.
Здесь есть две проблемы, и они ответили в другом месте на SO.
Во-первых, во время тестирования NSBundle mainBundle не возвращает то, что вы думаете, если вы хотите, чтобы код, который зависит от NSBundle mainBundle, работал во время модульного тестирования, вы можете заменить его на
[NSBundle bundleForClass: [self class]]
Я не уверенесли это менее эффективно (вероятно), но оно работает в модульном тесте.
Вторая проблема заключается в том, что на каталог документов неправильно ссылаются, так как модульный тест не выполняется внутри пескакоробка.Есть несколько способов исправить это, но самый простой - просто создать каталог документов в ~ / Library / Application Support / iPhone Simulator / 6.1 /.Очевидно, что 6.1 является лишь примером.
Ссылки: -
OCUnit & NSBundle
NSHomeDirectory в модульном тестировании iPhone
Кстати, я просто люблю отвечать на старые вопросы.