Spec-Zone.ru › CodeIgniter 3

Класс тестирования модулей

Тестирование модулей — это подход к разработке программного обеспечения, в котором пишутся тесты для каждой функции вашего приложения. Если вы не знакомы с этим понятием, вы можете немного погуглить на эту тему.

Класс Unit Test CodeIgniter довольно прост, состоящий из функции оценки и двух функций результатов. Он не предназначен для полной тестовой среды, а скорее для простого механизма оценки вашего кода, чтобы определить, генерирует ли он правильный тип данных и результат.

  • Использование библиотеки тестирования модулей
    • Инициализация класса
    • Запуск тестов
    • Генерация отчетов
    • Жесткий режим
    • Включение/отключение тестирования модулей
    • Отображение результатов тестирования модулей
      • Настройка отображаемых тестов
      • Создание шаблона
  • Справочник по классу

Использование библиотеки тестирования модулей

Инициализация класса

Как и большинство других классов в CodeIgniter, класс Unit Test инициализируется в вашем контроллере с помощью функции $this->load->library:

$this->load->library('unit_test');

После загрузки объект Unit Test будет доступен с помощью $this->unit

Запуск тестов

Запуск теста включает в себя предоставление теста и ожидаемого результата следующим образом:

$this->unit->run(‘test’, ‘expected result’, ‘test name’, ‘notes’);

Где test — результат кода, который вы хотите протестировать, expected result — ожидаемый тип данных, test name — необязательное имя, которое вы можете дать своему тесту, а notes — необязательные заметки. Пример:

$test = 1 + 1;

$expected_result = 2;

$test_name = 'Adds one plus one';

$this->unit->run($test, $expected_result, $test_name);

Ожидаемый результат, который вы предоставляете, может быть либо точным совпадением, либо совпадением по типу данных. Вот пример точного совпадения:

$this->unit->run('Foo', 'Foo');

Вот пример совпадения по типу данных:

$this->unit->run('Foo', 'is_string');

Обратите внимание на использование «is_string» во втором параметре? Это сообщает функции оценить, является ли результат вашего теста строкой. Вот список разрешенных типов сравнения:

  • is_object
  • is_string
  • is_bool
  • is_true
  • is_false
  • is_int
  • is_numeric
  • is_float
  • is_double
  • is_array
  • is_null
  • is_resource

Генерация отчетов

Вы можете отобразить результаты после каждого теста или можете запустить несколько тестов и сгенерировать отчет в конце. Чтобы отобразить отчет непосредственно, просто выведите или верните функцию run:

echo $this->unit->run($test, $expected_result);

Чтобы запустить полный отчет обо всех тестах, используйте это:

echo $this->unit->report();

Отчет будет отформатирован в HTML-таблицу для просмотра. Если вы предпочитаете необработанные данные, вы можете извлечь массив, используя:

echo $this->unit->result();

Жесткий режим

По умолчанию класс unit test выполняет оценку точных совпадений свободно. Рассмотрим этот пример:

$this->unit->run(1, TRUE);

Тест оценивает целое число, но ожидаемый результат — булево значение. Однако PHP из-за своей свободной типизации оценит вышеуказанный код как TRUE при использовании обычного оператора равенства:

if (1 == TRUE) echo 'This evaluates as true';

Если вы предпочитаете, вы можете включить класс unit test в жесткий режим, который будет сравнивать тип данных, а также значение:

if (1 === TRUE) echo 'This evaluates as FALSE';

Для включения жесткого режима используйте это:

$this->unit->use_strict(TRUE);

Включение/отключение тестирования модулей

Если вы хотите оставить некоторые тесты в своих скриптах, но не запускать их, если вам это не нужно, вы можете отключить тестирование модулей, используя:

$this->unit->active(FALSE);

Отображение результатов тестирования модулей

Когда отображаются результаты вашего модульного теста, по умолчанию отображаются следующие элементы:

  • Имя теста (test_name)
  • Тип данных теста (test_datatype)
  • Ожидаемый тип данных (res_datatype)
  • Результат (result)
  • Имя файла (file)
  • Номер строки (line)
  • Любые заметки, которые вы ввели для теста (notes)

Вы можете настроить, какие из этих элементов отображаются, используя $this->unit->set_test_items(). Например, если вы хотели отобразить только имя теста и результат:

Настройка отображаемых тестов

$this->unit->set_test_items(array('test_name', 'result'));

Создание шаблона

Если вы хотите отформатировать результаты тестирования модулей иначе, чем по умолчанию, вы можете задать свой собственный шаблон. Вот пример простого шаблона. Обратите внимание на необходимые псевдопеременные:

$str = '
<table border="0" cellpadding="4" cellspacing="1">
{rows}
        <tr>
                <td>{item}</td>
                <td>{result}</td>
        </tr>
{/rows}
</table>';

$this->unit->set_template($str);

Примечание

Ваш шаблон должен быть объявлен до запуска процесса модульного тестирования.

Справочник по классу

class CI_Unit_test
set_test_items($items)
Параметры:
  • $items (массив) – Список отображаемых элементов теста
Возвращает:

void

Устанавливает список элементов, которые должны быть видны в тестах. Допустимые варианты:

  • test_name
  • test_datatype
  • res_datatype
  • result
  • file
  • line
  • notes
run($test[, $expected = TRUE[, $test_name = 'undefined'[, $notes = '']]])
Параметры:
  • $test (смешанный) – Тестовые данные
  • $expected (смешанный) – Ожидаемый результат
  • $test_name (строка) – Имя теста
  • $notes (строка) – Любые заметки, которые нужно добавить к тесту
Возвращает:

Отчет о тестировании

Тип возвращаемого значения:

строка

Запускает тесты модулей.

report([$result = array()])
Параметры:
  • $result (массив) – Массив, содержащий результаты тестов
Возвращает:

Отчет о тестировании

Тип возвращаемого значения:

строка

Генерирует отчет об уже завершенных тестах.

use_strict([$state = TRUE])
Параметры:
  • $state (bool) – Флаг состояния строгости
Тип возвращаемого значения:

void

Включает/отключает строгое сравнение типов в тестах.

active([$state = TRUE])
Параметры:
  • $state (bool) – Включить ли тестирование
Тип возвращаемого значения:

void

Включает/отключает тестирование модулей.

result([$results = array()])
Параметры:
  • $results (массив) – Список результатов тестов
Возвращает:

Массив ссылок на необработанные данные о результатах

Тип возвращаемого значения:

массив

Возвращает необработанные данные о результатах тестов.

set_template($template)
Параметры:
  • $template (строка) – Шаблон результатов тестирования
Тип возвращаемого значения:

void

Устанавливает шаблон для отображения результатов тестов.

© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/userguide3/libraries/unit_testing.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API