Почему код в модульных тестах не может найти ресурсы пакета?

Это не для Вас, когда Вы пишете код первоначально. Именно для кого-то еще (или Вы несколько месяцев спустя) смотрит на объявление метода в классе или интерфейсе для наблюдения то, что это делает. Не изменение объекта является значительной информацией для подбирания из этого.

173
задан benzado 10 December 2009 в 07:37
поделиться

1 ответ

Когда программа модульного тестирования запускает ваш код, ваш пакет модульного теста является НЕ основным пакетом.

Даже если вы запускаете тесты, а не ваше приложение, ваше комплект приложений по-прежнему остается основным. (Предположительно, это предотвращает поиск в коде, который вы тестируете, неправильного пакета.) Таким образом, если вы добавляете файл ресурсов в пакет unit test, вы не найдете его при поиске в основном пакете. Если вы замените приведенную выше строку на:

NSBundle *bundle = [NSBundle bundleForClass:[self class]];
NSString *path = [bundle pathForResource:@"foo" ofType:@"txt"];

, тогда ваш код будет искать пакет, в котором находится ваш класс модульного теста, и все будет в порядке.

302
ответ дан 23 November 2019 в 20:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: