Lua:
Письмо тестів
Як це зробити:
Lua, будучи легкою, але потужною мовою сценаріїв, не включає вбудований фреймворк для тестування. Однак, бібліотеки сторонніх розробників, такі як Busted і LuaUnit, роблять тестування відносно простим. Тут ми розглянемо приклади використання обох.
Використання Busted
Busted - популярний фреймворк для тестування Lua, який пропонує гнучкий спосіб писати тести. Спершу встановіть Busted через LuaRocks (менеджер пакетів Lua) за допомогою команди luarocks install busted
. Після встановлення ви можете писати свої тести. Ось простий тест для функції add
, яка сумує два числа:
-- add.lua
local function add(a, b)
return a + b
end
return add
-- add_spec.lua
local add = require('add')
describe("Функція додавання", function()
it("повинна коректно додавати два числа", function()
assert.are.equal(5, add(2, 3))
end)
end)
Щоб запустити тести, виконайте busted
у вашому терміналі. Приклад виводу для успішного тесту виглядатиме так:
●
1 успіх / 0 невдач / 0 помилок / 0 в очікуванні : 0.002 секунди
Використання LuaUnit
LuaUnit - ще один фреймворк для тестування, який дотримується конвенцій xUnit і легко налаштовується. Встановіть LuaUnit через LuaRocks за допомогою luarocks install luaunit
. Ось як ви могли б написати подібний тест, як вище, з використанням LuaUnit:
-- add.lua залишається таким самим
-- test_add.lua
luaunit = require('luaunit')
local add = require('add')
function testAdd()
luaunit.assertEquals(add(2, 3), 5)
end
os.exit(luaunit.LuaUnit.run())
Запуск цього скрипта безпосередньо через Lua (lua test_add.lua
) виведе щось на кшталт:
.
Пройдено 1 тест за 0.001 секунди, 1 успіх, 0 невдач
Обидва фреймворки, Busted та LuaUnit, пропонують обширні можливості для роботи з різними сценаріями тестування, включно з мокінгом, шпигунством та асинхронним тестуванням. Вибір між ними залежить від специфічних потреб вашого проекту та особистих переваг щодо синтаксису та функціональності.