Вы делаете что-то не так? Я так не думаю.
Нужно ли нам проверять контроллеры? Я не. Возможно я должен. Похоже, много работы.
Если я использую WebTestCase для тестирования контроллеров, это все еще будет считаться модульным тестом? Или это уже интеграционный тест? WebTestCase будет интересным подходом к тестированию контроллеров, если будет обнаружен какой-либо значимый вывод; например, обнаружение отсутствия ошибок при вызове /some/specific/path.
Предположим, вы заставили меня проверить мой контроллер, как бы я его протестировал? Это сложный вопрос. Вероятно, вам потребуется инициализировать часть среды приложения, чтобы сделать что-нибудь стоящее.
Большинство статей / книг говорят вам, чтобы определить ваши тесты до того, как вы начнете кодировать. Может быть, я пробовал это, но я обычно слишком нетерпелив. Кажется, это мешает быстрому прототипированию, но, возможно, определение модульных тестов - это способ быстрого прототипирования.
Я обнаружил, что решить, что тестировать с помощью PHP, - это сложная задача. Я думаю, что вы должны выбрать свои сражения. Если важно, чтобы метод возвращал значение определенного типа, проверьте это. Если многое происходит автоматически при создании экземпляра объекта, вы также можете проверить это.
В общем, что я делаю - правильно или неправильно - заставляю все работать, затем создаю некоторые базовые тесты и затем добавляю тесты по мере необходимости на основе любых проблем, с которыми я сталкиваюсь. Идея состоит в том, чтобы никогда не иметь повторяющихся проблем, и каждый тест гарантирует, что приложение ведет себя одинаково в течение всего жизненного цикла.
Что касается специфики, я использую Zend Framework, но в CodeIgniter это будет похоже. Я также использую SimpleTest (но с моей собственной оболочкой класса). Я могу или не могу модульно тестировать модели, и я никогда не выполнял тесты для контроллеров или представлений; Кажется, это слишком много работы и слишком мало пользы. Большинство фреймворков «терпят неудачу рано», поэтому проблемы обычно очевидны Но любой общий библиотечный код облегчает цели, а ошибки, особенно логические, обнаружить труднее. Настройте свои тесты, чтобы убедиться, что все работает так, как ожидается, чтобы ваш специфичный для фреймворка код сталкивался с небольшими проблемами.