Почему CIUnit необходим для использования PHPUnit с CodeIgniter?

Мы решили использовать PHPUnit (с Jenkins) в нашем следующем проекте. Мы рассматриваем разные фреймворки PHP, одним из которых является CodeIgniter. Я вижу, что многие люди используют My CIUNIT для «моста» PHPUnit и Codeigniter. В онлайн-документации мало объяснений.

Зачем это нужно?

Другим структурам, похоже, не нужен «крутой мост», подобный этому.

Related of "Почему CIUnit необходим для использования PHPUnit с CodeIgniter?"

Причины:

  1. Компоненты Codeigniter плотно связаны. Перед использованием любых других компонентов вам понадобятся некоторые основные базовые части (загрузчик, маршрутизатор, объект CFG).
  2. Codeigniter не предназначен для запуска из CLI. В своем front-контроллере index.php он имеет большой код начальной загрузки, и он предполагает среду веб-сервера.

Вы не нуждаетесь в CIUNIT для модульного тестирования CI. Но вам придется что- то сделать. В моем случае я написал альтернативный фронт-контроллер для index.php, который просто загружает минимум, необходимый для получения суперобъекта CI. Я require_once его в верхней части тестовых файлов и $this->CI =& get_instance() в SetUp() . Однако, если бы я был абсолютно чистым модульным тестером, я должен был уничтожить и воссоздать объект CI после каждого теста в случае, если какое-то государство попало в него. Я не уверен, что CIUNIT сделает это за вас.