Курс по 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 тест върху съдържанието на тази тема.

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

Тестване 🆕   |   Тест — Тестване


💪 Или преминете направо към упражненията в този раздел.