У меня проблема, и я хотел подтвердить, что я делаю все правильно.
Я могу проверить простые вещи с помощью тестов SenTestingKit, и это работает нормально. Я установил пакет Unit Test и установил его как зависимость от основной цели приложения. Он успешно запускает все тесты всякий раз, когда я нажимаю cmd + B.
Здесь, где я сталкиваюсь с проблемами. У меня есть некоторые файлы XML, которые мне нужно загрузить из папки ресурсов в составе приложения. Являясь хорошим модульным тестером, я хочу написать об этом единичные тесты, чтобы убедиться, что они правильно загружаются.
Итак, у меня есть код, который выглядит так:
NSString *filePath = [[NSBundle mainBundle]
pathForResource:@"foo" ofType:@"xml"];
Это работает, когда приложение запускается, но во время unit test, mainBundle
указывает на неправильный пакет, поэтому эта строка кода возвращает nil.
Поэтому я изменил его, чтобы использовать известный класс следующим образом:
NSString *filePath = [[NSBundle bundleForClass:[Config class]]
pathForResource:@"foo" ofType:@"xml"];
Это тоже не работает, потому что для того, чтобы тест даже скомпилировал такой код, он Config
должен быть частью Unit Test Target. Если я добавлю это, то пакет для этого класса станет пакетом Unit Test. (Тьфу!)
Я подхожу к этому неправильно?