Fish Shell:
Письмо тестів

Як:

Оболонка Fish не має вбудованого фреймворку для тестування, як деякі інші програмні середовища. Проте, ви можете написати прості тестові скрипти, які використовують утвердження (assertions) для перевірки поведінки ваших функцій. Крім того, ви можете використовувати інструменти сторонніх розробників, як-от fishtape, для більш всебічного набору тестів.

Приклад 1: Простий Тестовий Скрипт

Почнемо з базової функції у Fish, яка розраховує суму двох чисел:

function add --description 'Додати два числа'
    set -l sum (math $argv[1] + $argv[2])
    echo $sum
end

Ви можете написати простий тестовий скрипт для цієї функції таким чином:

function test_add
    set -l result (add 3 4)
    if test $result -eq 7
        echo "test_add пройшов"
    else
        echo "test_add не пройшов"
    end
end

test_add

Запуск цього скрипта виведе:

test_add пройшов

Приклад 2: Використання Fishtape

Для більш надійної тестової рішення, ви можете використовувати fishtape, генератор тестів TAP для Fish.

Спочатку встановіть fishtape, якщо ви ще цього не зробили:

fisher install jorgebucaran/fishtape

Далі створіть тестовий файл для вашої функції add, наприклад, add_test.fish:

test "Додавання 3 і 4 дає 7"
    set result (add 3 4)
    echo "$result" | fishtape
end

Для запуску тесту використовуйте наступну команду:

fishtape add_test.fish

Приклад виводу може виглядати так:

TAP version 13
# Додавання 3 і 4 дає 7
ok 1 - test_add пройшов

Це говорить вам про те, що тест пройшов успішно. fishtape дозволяє структурувати більш детальні тести та надає інформативний вивід, сприяючи легшому відлагодженню та всебічному покриттю тестами ваших скриптів Fish.