Курс языка программирования Raku / Продвинутый уровень / Тестирование и документация 🆕 / Тестирование

Модуль Test

Подключите инструменты для тестирования с помощью use Test. Самая базовая проверка — это ok, которая проходит, если условие истинно. Каждая проверка принимает необязательное описание:

use Test;

ok 1 == 1, 'one equals one';
ok 2 > 1,  'two is greater';

done-testing;

При запуске выводится стандартный формат тестов, известный как TAP:

ok 1 - one equals one
ok 2 - two is greater
1..2

Каждая пройденная проверка выводится как ok с номером и описанием; непройденная была бы отмечена как not ok. Финальная строка 1..2 — это план, указывающий, сколько тестов было выполнено. Вызов done-testing в конце автоматически генерирует этот план.

Когда вы ожидаете конкретное значение, is нагляднее, чем ok, потому что при ошибке выводятся и ожидаемое, и фактическое значения:

use Test;

is 2 + 2, 4, 'addition works';

done-testing;

Эта программа выведет ok 1 - addition works. Чтобы увидеть, как работает вывод при ошибке, передайте is неверное ожидаемое значение:

use Test;

is 2 + 2, 5, 'addition works';

done-testing;

Теперь проверка не проходит, и вывод точно объясняет почему:

not ok 1 - addition works
# Failed test 'addition works'
# at test.raku line 3
# expected: '5'
#      got: '4'
1..1
# You failed 1 test of 1

Строка not ok обозначает неудачу, а диагностические строки под ней показывают, что ожидалось, в сравнении с тем, что было получено — именно поэтому is полезнее, чем простой ok, когда важно конкретное значение.

ok, is и done-testing — этого уже достаточно, чтобы написать полезный тестовый файл; в следующей теме описаны другие виды сравнений.

Практика

Пройдите 1 тест по содержанию этой темы.

Навигация по курсу

Тестирование   |   Тест — Тестирование


💪 Или перейдите сразу к упражнениям этого раздела.