Ugrás a tartalomhoz

Modul:ScribuntoUnit/doc

Ellenőrzött
A Wikipédiából, a szabad enciklopédiából

Ez a modul más modulok egységtesztelésére szolgál. A teszteléshez létre kell hozni egy tesztmodult (ez általában az eredeti modul /tests allapja), ami a tesztelt modul és a ScribuntoUnit felhasználásával ellenőrzi, hogy a tesztelt modul műveletei a várt eredményt adják-e.

A modul /tests allapján elhelyezett teszt eredménye automatikusan megjelenik a modul wikioldalán; a teszten elbukó modulok emellett bekerülnek a Sikertelen tesztet eredményező modulok kategóriába is.

Példa egy teszteket is tartalmazó modulra: Modul:Coordinate

A tesztmodul felépítése

[szerkesztés]

A tesztmodul egy tesztkészlet (test suite) létrehozásával kezdődik:

local SUT = require('Modul:SUT') -- a tesztelt modul
local ScribuntoUnit = require('Modul:ScribuntoUnit')
local suite = ScribuntoUnit:new()

Ezután a suite tesztkészlethez hozzá lehet adni az egyes teszteket. Minden olyan függvény, aminek a neve test-tel kezdődik, tesztként lesz kezelve (más függvényeket is tartalmazhat a tesztkészlet, ezeket a ScribuntoUnit figyelmen kívül hagyja, de a tesztek használhatják őket).

function suite:testSomeCall()
    self:assertEquals('expected value', SUT.someCall(123))
    self:assertEquals('other expected value', SUT.someCall(456))
end

function suite:testSomeOtherCall()
    self:assertEquals('expected value', SUT.someOtherCall(123))
    self:assertEquals('other expected value', SUT.someOtherCall(456))
end

A tesztek ellenőrző állításokat (assertion) tartalmaznak; ezek ellenőrzik valamilyen feltétel teljesülését (például az assertEquals azt, hogy a két argumentuma megegyezik). Ha a feltétel nem teljesül, a teszt sikertelen, és a futtatásakor egy hibaüzenetet látunk, hogy melyik ellenőrző állítás hiúsult meg (az adott tesztben szereplő többi ellenőrzésre ilyenkor nem kerül sor). Ha minden ellenőrzés sikeres, maga a teszt is sikeres.

A teszt futtatása

[szerkesztés]

A tesztet kétféleképpen lehet futtatni: a modul szerkesztésekor megjelenő debug konzolból a require('Module:SUT/tests').run() paranccsal (ilyenkor a hibaüzenetek is a konzolban jelennek meg), vagy sablonként az {{#invoke:Module:SUT/tests|run}} paranccsal (ilyenkor egy táblázatként jelenik meg, ez a tesztmodul tetején látható; lehetőség van tömörebb megjelenítésre is a {{#invoke:Module:SUT/tests|run|displayMode=short}} paraméterezéssel, emez pedig a moduldokumentáció fejlécében).

Ellenőrzések

[szerkesztés]

hibaüzenetek

[szerkesztés]

Minden ellenőrzés opcionális utolsó paraméterként elfogad egy üzenetet is, ami meg fog jelenni, ha az ellenőrzés sikertelen.

assertTrue, assertFalse

[szerkesztés]

Azt ellenőrzik, hogy a vizsgált állítás igaz ill. hamis-e.

self:assertTrue(2 + 2 == 4)

assertEquals, assertDeepEquals

[szerkesztés]

A paraméterek egyenlőségét vizsgálja. Hagyományosan az első paraméter az ismert eredmény, a második a vizsgált függvényhívás.

self:assertEquals(4, calculator.add(2, 2))

As assertDeepEquals táblák egyenlőségének a vizsgálatára is alkalmas.

assertTemplateEquals

[szerkesztés]

Egy sablonhívás eredményét vizsgálja.

self:assertTemplateEquals(4, 'add', {2, 2}) -- akkor igaz, ha {{add|2|2}} értéke 4

assertResultEquals

[szerkesztés]

Tetszőleges wikikód (tipikusan egy modulhívás) kimenetét vizsgálja.

self:assertResultEquals(4, '{{#invoke:Calculator|add|2|2}}')

assertSameResult

[szerkesztés]

Két wikikód kimenetét hasonlítja össze; hasznos lehet egy sablon lecserélésénél annak ellenőrzésére, hogy az új sablon ugyanúgy viselkedik-e.

self:assertSameResult('{{add|2|2}}', '{{#invoke:Calculator|add|2|2}}')

Ez a Modul:ScribuntoUnit dokumentációs lapja