Как к тестовым контроллерам с CodeIgniter?

https://тесты docs.python.org/library/stdtypes.html#comparisons

is для идентификационных данных == тесты для равенства

Каждое (маленькое) целочисленное значение отображается на единственном значении, таким образом, каждые 3 идентичны и равны. Это - деталь реализации, не часть спецификации языка хотя

12
задан Charles 23 December 2012 в 21:33
поделиться

4 ответа

В качестве альтернативы вы можете сделать следующее:

$CI =& get_instance();
$CI = load_class('Loader');

class MockLoader extends CI_Loader
{
    function __construct()
    {
        parent::__construct();
    }
}

Затем в вашем контроллере выполните $ this-> load = new MockLoader ().

4
ответ дан 2 December 2019 в 22:52
поделиться

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

Вы можете создайте свой собственный класс MY_Loader внутри /application/libraries/MY_Loader.php .

<?php
  class MY_Loader extends CI_Loader {

    function view($view, $vars = array(), $return = FALSE) {
      echo 'My custom code goes here';
    }

  }

CodeIgniter увидит это автоматически. Просто добавьте функции, которые вы хотите заменить, в исходной библиотеке. Все остальное будет использовать оригинал.

Для получения дополнительной информации обратитесь к странице руководства CI для создания основных системных классов .

1
ответ дан 2 December 2019 в 22:52
поделиться

Я впечатлен кодом, который вы пытаетесь использовать.

Так что теперь мне интересно, как класс CodeIgniter «Хуки» может помочь в решении вашей проблемы?

http://codeigniter.com/user_guide/general/hooks.html

С уважением, Рейн Гроот

1
ответ дан 2 December 2019 в 22:52
поделиться

Мое текущее решение - изменить код CodeIgniter для использования require_once вместо require. Вот патч, который я собираюсь отправить разработчикам CI на случай, если кому-то понадобится сделать то же самое, пока они его не примут:

diff --git a/system/codeigniter/Common.php b/system/codeigniter/Common.php
--- a/system/codeigniter/Common.php
+++ b/system/codeigniter/Common.php
@@ -100,20 +100,20 @@ function &load_class($class, $instantiate = TRUE)
        // folder we'll load the native class from the system/libraries folder.
        if (file_exists(APPPATH.'libraries/'.config_item('subclass_prefix').$class.EXT))
        {
-               require(BASEPATH.'libraries/'.$class.EXT);
-               require(APPPATH.'libraries/'.config_item('subclass_prefix').$class.EXT);
+               require_once(BASEPATH.'libraries/'.$class.EXT);
+               require_once(APPPATH.'libraries/'.config_item('subclass_prefix').$class.EXT);
                $is_subclass = TRUE;
        }
        else
        {
                if (file_exists(APPPATH.'libraries/'.$class.EXT))
                {
-                       require(APPPATH.'libraries/'.$class.EXT);
+                       require_once(APPPATH.'libraries/'.$class.EXT);
                        $is_subclass = FALSE;
                }
                else
                {
-                       require(BASEPATH.'libraries/'.$class.EXT);
+                       require_once(BASEPATH.'libraries/'.$class.EXT);
                        $is_subclass = FALSE;
                }
        }
2
ответ дан 2 December 2019 в 22:52
поделиться
Другие вопросы по тегам:

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