вівторок, 13 листопада 2012 р.

UnitTests and Documents directory

Столкнулся с одной особенностью при использовании функции NSSearchPathForDirectoriesInDomains в юнит-тестах.
При прораммировании под  iOS часто определяют расположение каталога Documents следующим кодом:


[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]

При работе в симуляторе данный код вернет что-то подобное:

~/Library/Application Support/iPhone Simulator/5.1/Applications/06DA815C-9869-408E-AB8A-9A4364CEC873/Documents

Однако для юнит-тестов в название каталога не добавляется айди приложения и функция возвращает:

~/Library/Application Support/iPhone Simulator/5.1/Applications/Documents

А вот такого каталога в системе может и не быть, из-за чего попытки создания подкаталогов будут завершаться с ошибкой. Заборол эту проблему, создавая в методе setUp нужные каталоги:

NSFileManager* fileMgr = [NSFileManager defaultManager];
...
if (![fileMgr fileExistsAtPath:dmDir])
        [fileMgr createDirectoryAtPath:dmDir withIntermediateDirectories:YES attributes:nil error:nil]; 

Немає коментарів:

Дописати коментар