Lua:
Testien kirjoittaminen

Kuinka:

Lua on kevyt, mutta tehokas skriptauskieli, eikä sisällä sisäänrakennettua testauskehystä. Kolmannen osapuolen kirjastot, kuten Busted ja LuaUnit, tekevät testauksesta suhteellisen suoraviivaista. Tutustumme esimerkkeihin käyttäen molempia.

Käyttäen Bustedia

Busted on suosittu Lua-testauskehys, joka tarjoaa joustavan tavan kirjoittaa testejä. Asenna Busted ensin LuaRocksin (Luas paketinhallinta) kautta komennolla luarocks install busted. Asennuksen jälkeen voit kirjoittaa testejäsi. Tässä on yksinkertainen testi funktiolle add, joka summaa kaksi lukua:

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

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

describe("Add-funktio", function()
  it("pitäisi laskea kaksi numeroa oikein", function()
    assert.are.equal(5, add(2, 3))
  end)
end)

Suorittaaksesi testit, suorita komento busted terminaalissasi. Esimerkki läpäisseen testin tulosteesta näyttäisi tältä:

●
1 onnistuminen / 0 epäonnistumista / 0 virhettä / 0 odottamassa : 0.002 sekuntia

Käyttäen LuaUnitia

LuaUnit on toinen testauskehys, joka noudattaa xUnit-konventioita ja on helppo ottaa käyttöön. Asenna LuaUnit LuaRocksilla käyttäen komentoa luarocks install luaunit. Tässä on miten voisit kirjoittaa samanlaisen testin kuin yllä LuaUnitin kanssa:

-- add.lua pysyy samana

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

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

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

Suorittamalla tämän skriptin suoraan Lualla (lua test_add.lua) tulisi tuloste jotain tällaista:

.
Suoritettiin 1 testiä 0.001 sekunnissa, 1 onnistuminen, 0 epäonnistumista

Sekä Busted että LuaUnit tarjoavat kattavia ominaisuuksia käsittelemään erilaisia testausskenaarioita, mukaan lukien teeskentelyn, vakoilun ja asynkronisen testauksen. Niiden välillä valinta riippuu projektisi erityistarpeista ja henkilökohtaisesta mieltymyksestäsi syntaksin ja toiminnallisuuden suhteen.