Это не для Вас, когда Вы пишете код первоначально. Именно для кого-то еще (или Вы несколько месяцев спустя) смотрит на объявление метода в классе или интерфейсе для наблюдения то, что это делает. Не изменение объекта является значительной информацией для подбирания из этого.
Когда программа модульного тестирования запускает ваш код, ваш пакет модульного теста является НЕ основным пакетом.
Даже если вы запускаете тесты, а не ваше приложение, ваше комплект приложений по-прежнему остается основным. (Предположительно, это предотвращает поиск в коде, который вы тестируете, неправильного пакета.) Таким образом, если вы добавляете файл ресурсов в пакет unit test, вы не найдете его при поиске в основном пакете. Если вы замените приведенную выше строку на:
NSBundle *bundle = [NSBundle bundleForClass:[self class]];
NSString *path = [bundle pathForResource:@"foo" ofType:@"txt"];
, тогда ваш код будет искать пакет, в котором находится ваш класс модульного теста, и все будет в порядке.