2012-10-23 3 views
1

Я пытаюсь запустить свое приложение в среде OCUnit. Он использует базу данных sqlite, и я использую ее в папке документов приложения.Как получить доступ к NSDocumentDirectory в модульных тестах (OCUnit)

Однако при работе от испытаний, путь к базе данных устанавливается:

~/Library/Application Support/iPhone Simulator/6.0/Documents/Test.sqlite 

Хотя тот же код дает мне путь

~/Library/Application Support/iPhone Simulator/6.0/Applications/34536EFB-005A-44A1-AD99-07D6B9F6888B/Documents/Test.sqlite 

, когда я запускаю его на тренажере ,

Как я могу использовать NSDocumentDirectory в своих тестах и ​​получить то, что мне нужно?

ответ

2

Цель приложения - не то же самое, что и тестовая цель, поэтому вы получаете разные пути.

При использовании OCUnit вы можете получить тест NSBundle так:

NSString *path = [[NSBundle bundleForClass:[self class]] pathForResource:@"myResource" ofType:@"someType"]; 

Вы должны добавить базу данных к ресурсам тестовой цели и использовать его соответствующим образом.

Или вы можете построить этот путь (взятый из этого OS Answer):

// Test case -> path inside "UnitTests" folder in the project directory 
NSString *directory = [[NSFileManager defaultManager] currentDirectoryPath]; 
NSString *path = [directory stringByAppendingPathComponent:@"UnitTests/"]; 
path = [path stringByAppendingPathComponent:@"Test.sqlite"]; 
Смежные вопросы