Modul:UnitTesztek/doc

A Wikipédiából, a szabad enciklopédiából
Ugrás a navigációhoz Ugrás a kereséshez

Ez a Modul:UnitTesztek dokumentációs lapja

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})