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