Lua:
Rédaction de tests

Comment faire :

Lua, étant un langage de script léger mais puissant, n’inclut pas de framework de test intégré. Cependant, des bibliothèques tierces comme Busted et LuaUnit rendent les tests relativement simples. Ici, nous examinerons des exemples utilisant les deux.

Utiliser Busted

Busted est un framework de test Lua populaire qui offre une manière flexible d’écrire des tests. Tout d’abord, installez Busted via LuaRocks (le gestionnaire de paquets de Lua) avec luarocks install busted. Une fois installé, vous pouvez écrire vos tests. Voici un test simple pour une fonction add qui additionne deux nombres :

-- add.lua
local function add(a, b)
  return a + b
end

return add
-- add_spec.lua
local add = require('add')

describe("La fonction Add", function()
  it("devrait additionner correctement deux nombres", function()
    assert.are.equal(5, add(2, 3))
  end)
end)

Pour exécuter les tests, tapez busted dans votre terminal. Un exemple de sortie pour un test réussi ressemblerait à :

●
1 succès / 0 échecs / 0 erreurs / 0 en attente : 0,002 secondes

Utiliser LuaUnit

LuaUnit est un autre framework de test qui suit les conventions xUnit et est facile à configurer. Installez LuaUnit via LuaRocks en utilisant luarocks install luaunit. Voici comment vous pourriez écrire un test similaire à celui ci-dessus avec LuaUnit :

-- add.lua reste le même

-- test_add.lua
luaunit = require('luaunit')
local add = require('add')

function testAdd()
  luaunit.assertEquals(add(2, 3), 5)
end

os.exit(luaunit.LuaUnit.run())

Exécuter ce script directement via Lua (lua test_add.lua) affichera quelque chose comme :

.
1 test lancé en 0,001 secondes, 1 succès, 0 échecs

Busted et LuaUnit offrent tous deux de vastes fonctionnalités pour gérer divers scénarios de test, incluant le mocking, l’espionnage et les tests asynchrones. Le choix entre eux repose sur les besoins spécifiques de votre projet et votre préférence personnelle en ce qui concerne la syntaxe et les fonctionnalités.