Lua:
Tests Schreiben
Wie:
Lua, als leichtgewichtige, aber leistungsstarke Skriptsprache, beinhaltet kein eingebautes Test-Framework. Dritt-Paketbibliotheken wie Busted und LuaUnit machen das Testen jedoch relativ unkompliziert. Hier sehen wir uns Beispiele mit beiden an.
Busted verwenden
Busted ist ein beliebtes Lua-Test-Framework, das eine flexible Art bietet, Tests zu schreiben. Installieren Sie zuerst Busted über LuaRocks (den Paketmanager von Lua) mit luarocks install busted
. Nach der Installation können Sie Ihre Tests schreiben. Hier ist ein einfacher Test für eine Funktion add
, die zwei Zahlen addiert:
-- add.lua
local function add(a, b)
return a + b
end
return add
-- add_spec.lua
local add = require('add')
describe("Add function", function()
it("sollte zwei Zahlen korrekt addieren", function()
assert.are.equal(5, add(2, 3))
end)
end)
Um die Tests auszuführen, führen Sie busted
in Ihrem Terminal aus. Eine Beispiel-Ausgabe für einen bestandenen Test könnte so aussehen:
●
1 Erfolg / 0 Misserfolge / 0 Fehler / 0 ausstehend : 0.002 Sekunden
LuaUnit verwenden
LuaUnit ist ein weiteres Test-Framework, das den xUnit-Konventionen folgt und einfach einzurichten ist. Installieren Sie LuaUnit über LuaRocks mit luarocks install luaunit
. So könnten Sie einen ähnlichen Test wie oben mit LuaUnit schreiben:
-- add.lua bleibt gleich
-- test_add.lua
luaunit = require('luaunit')
local add = require('add')
function testAdd()
luaunit.assertEquals(add(2, 3), 5)
end
os.exit(luaunit.LuaUnit.run())
Wenn Sie dieses Skript direkt über Lua ausführen (lua test_add.lua
), erhalten Sie etwas Ähnliches wie:
.
Ran 1 tests in 0.001 Sekunden, 1 Erfolg, 0 Misserfolge
Sowohl Busted als auch LuaUnit bieten umfangreiche Funktionen, um verschiedene Testszenarien zu behandeln, einschließlich Mocking, Spying und asynchronem Testen. Die Wahl zwischen ihnen hängt von den spezifischen Bedürfnissen Ihres Projekts und Ihren persönlichen Vorlieben bezüglich Syntax und Funktionalität ab.