Modul:ScribuntoUnit/doc
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