Тест модуля
Модуль тестирования представляет собой среду тестирования. В сочетании с модулем утверждений assert
можно легко писать различные тестовые примеры.
Внедрение модулей часто требует первых fibjs
операций :test
test setup
1
2var test = require('test');
test.setup();
Прежде чем писать тестовые примеры, вам обычно необходимо определить тестовый модуль для описания содержимого теста.
- описывать
«Описание» — это контейнер для всех групп тестов, аналогичный концепции набора тестов, который используется для it
привязки тестов к определенной категории. «Описание» может содержать несколько вариантов использования или другие подкатегории, представленные вложенным описанием.
1describe(String name, Function block)
Параметры вызова: имя: строка, определение блока имени модуля: функция, код инициализации модуля.
- это
Представляет один тестовый пример, и каждое описание должно тестировать только одну ситуацию, чтобы гарантировать надежность результатов теста.
1it(String name, Function block)
Параметры вызова: имя: строка, определение блока имени проекта: функция, тестовое содержимое
- xit&it.skip
Представляет пропущенные тестовые случаи.
1xit(String name, Function block)
Параметры вызова: имя: строка, определение блока имени проекта: функция, тестовое содержимое
- Ойт и это.только
Указывает, что будет выполняться только текущий тестовый пример, а другие тестовые примеры будут игнорироваться, поэтому текущий тестовый пример можно отладить отдельно, что очень практично.
1
2oit(String name, Function block)
it.only(String name, Function block)
Параметры вызова: имя: строка, определение блока имени проекта: функция, тестовое содержимое
- делать
Указывает на необходимость дальнейшего улучшения плана тестового примера.
1todo(String name, Function block)
Параметры вызова: имя: строка, определение блока имени проекта: функция, тестовое содержимое
При написании тестовых случаев обычно используютassertМодуль утверждений проверяет возврат функции. Как это использовать:
1assert(condition, String message);
Среди них первый параметр — это условие, которое необходимо установить, а второй параметр — сообщение об ошибке.
объект
assert
Подтвердите тестовый модуль. Если тестовое значение ложно, будет сообщено об ошибке. Поведение отчета об ошибках можно настроить на продолжение работы или выдачу ошибки.
1assert test.assert;
статическая функция
describe
Определите тестовый модуль, который может быть вложенным
1
2static test.describe(String name,
Function block);
Параметры звонка:
- name: строка, определяет имя модуля
- block: Функция, код инициализации модуля
xdescribe
Определение модуля для приостановки тестирования,test.setupЗатем вы можете использовать описать.skip для вызова
1
2static test.xdescribe(String name,
Function block);
Параметры звонка:
- name: строка, определяет имя модуля
- block: Функция, код инициализации модуля
odescribe
определения модулей для независимого тестирования,test.setupЗатем вы можете использовать define.only для вызова
1
2static test.odescribe(String name,
Function block);
Параметры звонка:
- name: строка, определяет имя модуля
- block: Функция, код инициализации модуля
it
Определить тестовый проект
1
2static test.it(String name,
Function block);
Параметры звонка:
- name: Строка, определяет имя проекта.
- block: Функция, тестовое содержимое
xit
Определение проекта для приостановки тестирования,test.setupЗатем вы можете использовать it.skip для вызова
1
2static test.xit(String name,
Function block);
Параметры звонка:
- name: Строка, определяет имя проекта.
- block: Функция, тестовое содержимое
oit
Определение проекта для независимого тестирования,test.setupЗатем вы можете использовать его.только для вызова
1
2static test.oit(String name,
Function block);
Параметры звонка:
- name: Строка, определяет имя проекта.
- block: Функция, тестовое содержимое
todo
план определения проекта,test.setupЗатем вы можете использовать it.todo для вызова
1
2static test.todo(String name,
Function block);
Параметры звонка:
- name: Строка, определяет имя проекта.
- block: Функция, тестовое содержимое
before
Определить текущее событие входа в тестовый модуль
1static test.before(Function func);
Параметры звонка:
- func: Функция, функция события
after
Определить событие выхода текущего тестового модуля
1static test.after(Function func);
Параметры звонка:
- func: Функция, функция события
beforeEach
Определить событие входа в тестовый проект текущего модуля тестирования.
1static test.beforeEach(Function func);
Параметры звонка:
- func: Функция, функция события
afterEach
Определить событие выхода текущего тестового проекта тестового модуля
1static test.afterEach(Function func);
Параметры звонка:
- func: Функция, функция события
mustCall
Проверьте, что функцию необходимо вызывать указанное количество раз.
1static Function test.mustCall(Function func);
Параметры звонка:
- func: Функция, тестируемая функция.
Результаты возврата:
- Function, возвращает завернутую функцию
mustNotCall
Проверьте, что функцию нельзя вызывать
1static Function test.mustNotCall(Function func);
Параметры звонка:
- func: Функция, тестируемая функция.
Результаты возврата:
- Function, возвращает завернутую функцию
Проверьте, что функцию нельзя вызывать
1static Function test.mustNotCall();
Результаты возврата:
- Function, возвращает завернутую функцию
run
Начать выполнение определенного тестового модуля
1static Object test.run(Integer mode = console.ERROR);
Параметры звонка:
- mode: Целое число, указывает режим тестирования. При значении ERROR информация об ошибках проекта концентрируется и отображается после отчета. Когда оно меньше значения ERROR, выходная информация отображается в любое время. Когда значение выше ERROR, отображается только отчет. отображается.
Результаты возврата:
- Object, вернуть результаты теста
После завершения тестового запуска результаты теста будут возвращены в следующем виде:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33{
"total": 2, // number of total test cases
"pass": 2, // number of passed test cases
"fail": 0, // number of failed test cases
"skip": 0, // number of skipped test cases
"todo": 0, // number of todo test cases
"time": 0.000000, // time elapsed in seconds
"cases": [ // details of test cases
{
"name": "test", // name of test case
"time": 0.000000, // time elapsed in seconds
"result": true, // result of test case
"error": null // message of error if test case failed
},
{
"name": "sub cases", // name of sub test case
"total": 1, // number of total test cases
"pass": 1, // number of passed test cases
"fail": 0, // number of failed test cases
"skip": 0, // number of skipped test cases
"todo": 0, // number of todo test cases
"time": 0.000000, // time elapsed in seconds
"cases": [ // details of test cases
{
"name": "test", // name of test case
"time": 0.000000, // time elapsed in seconds
"result": true, // result of test case
"error": null // message of error if test case failed
}
]
}
]
}
setup
Инициализируйте тестовую среду текущего скрипта и скопируйте метод тестового модуля как глобальную переменную текущего скрипта.
1static test.setup();
статические свойства
slow
Целое число, установите и запросите порог предупреждения о медленной проверке, в мс, значение по умолчанию — 75.
1static Integer test.slow;