Modul:UnitTesztek/doc
Megjelenés
Az UnitTesztek modul tesztelési lehetőséget biztosít más , a require utasítást alkalmazó szkriptek számára. Lásd a részleteket itt: w:Wikipedia:Lua#Unit_testing. Nézzük pl. a Modul:Banánok/tesztdoboz modult:
-- Unit tesztelése a [[Modul:Banánok]]on. Klikkelj a vitalapra, hogy elinduljon a teszt.
local p = require('Module:UnitTests')
function p:test_hello()
self:preprocess_equals('{{#invoke:Banánok | hello}}', 'Hello, world!')
end
return p
A Modulvita:Banánok/tesztdoboz a következő kódot hajtja végre:
{{#invoke: Banánok/tesztdoboz| run_tests}}
.
Minden egyes tesztelést szolgáló metódust, amelyet a "run_tests" végrehajtásra vár, kötelezően - mint a példabeli test_hello (lásd fent) a "test" sztringgel kell kezdenünk, mert erről ismeri fel a run_test metódus a tesztelni kívánt függvényt. Összetettebb példa: Modul:URLutil/teszt
Metódusok
[szerkesztés]run_tests
[szerkesztés]- run_tests(differs_at): Minden tesztet végrehajt. Ha "differs_at=1" módon specifikáljuk, akkor kapunk egy újabb oszlopot, amelyben megtalálhatjuk az általunk elvárt és a teszttől kapott végeredmény közötti első eltérő karaktert. Szokásosan az egyes unit teszt modulok modulvita-lapján használjuk.
{{#invoke:Banánok/tesztdoboz|run_tests(|opcionálisan megadhatod: differs_at=1)}}
preprocess_equals
[szerkesztés]- preprocess_equals(szöveg, elvárt): Végrehajtja (preprocessing) azt a szöveget, amit az első argumentumában talál és összeveti azt a mi elvárt eredményünkkel. Szkripteket és sablonokat egyformán hívhatunk meg, ezek eredményei a lap tartalmába kerülnek majd.
self:preprocess_equals('{{#invoke:Banánok | hello}}', 'Hello, világ!')
preprocess_equals_many
[szerkesztés]- preprocess_equals_many(prefix, suffix, párok): Egy sorozat preprocess_equals() hívást valósít meg a megadott párokból álló halmazon. Automatikusan hozzáfűzi a megadott prefix és suffix-eket minden szöveghez.
self:preprocess_equals_many('{{#invoke:BanánokArgumentumok | add |', '}}', {
{'2|3', '5'},
{'-2|2', '0'},
})
preprocess_equals_preprocess
[szerkesztés]- preprocess_equals_preprocess(text, elvárt): két wikitext végrehajtása (preprocessing) és az ezekből előálló eredmények azonosságának vizsgálatát végzi. Hasznos, ha szkripteket akarunk összevetni, hogy ugyanazt teljesítik-e, amit egy már ismert sablon.
self:preprocess_equals_preprocess('{{#invoke:Banánok | hello}}', '{{Hello}}')
Vizsgálható, hogy az Helló, világ! a Sablon:Hello sablonnal azonos eredményt nyújtja-e.
preprocess_equals_preprocess_many
[szerkesztés]- preprocess_equals_preprocess_many(prefix, suffix, párok)}}: Megvalósít egy sorozatot a preprocess_equals_preprocess() függvényhívásokból, "párok" ismét adott párokból álló halmaz. A prefix/suffix automatikusan hozzáadódik. Ha valamely páron belül nem adjuk meg a másodikat, akkor a pár második elemének is az elsőt tekinti.
self:preprocess_equals_preprocess_many('{{#invoke:Foo | spellnum |', '}}', '{{spellnum', '}}', {
{'2'}, -- equivalent to {'2','2'},
{'-2', '-2.0'},
})
equals
[szerkesztés]- equals(név, aktuális, elvárt): Visszaad egy számított értéket, meg az elvárt értéket és ellenőrzi, hogy az egyenlőség (== operátor) fennáll-e. Olyankor hasznos, ha más modulokon belül felhasználni kívánt modulunkat kívánjuk tesztelni és nem kívánjuk az #invoke parser funkciót használni eközben.
self:equals('Simple addition', 2 + 2, 4)
equals_deep
[szerkesztés]- equals_deep(név, aktuális, elvárt): Mint előbb az equals, de táblákat kezel, mélységében végez összehasonlítást. Egyetlen értéknek sem szabad körbe mutató referenciákat tartalmaznia, mivel - egyrészt ezeket a jelenlegi változat nem interpretálja - másrészt végtelen ciklust hozhat ez létre.
self:equals_deep('Tábla egybevetés', createRange(1,3), {1,2,3})
Ez a Modul:UnitTesztek dokumentációs lapja