Ugrás a tartalomhoz

Modul:UnitTesztek/doc

A Wikipédiából, a szabad enciklopédiából
A lap korábbi változatát látod, amilyen Pepo41 (vitalap | szerkesztései) 2013. május 21., 16:41-kor történt szerkesztése után volt. Ez a változat jelentősen eltérhet az aktuális változattól. (le)

Ez a Modul:UnitTesztek dokumentációs lapja

UnitTesztek tesztelési lehetőséget biztosítanak más , a require utasítást alkalmazó szkriptek számára. Lásd a részleteket itt: Wikipedia:Lua#Unit_testing. Következik a Modul:Banánok/tesztdoboz:

-- 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:Bananas | hello}}', 'Hello, world!')
end
 
return p

A Modulvita:Banánok/tesztdoboz a következő kódot hajtja végre{{#invoke: Banánol/tesztdoboz| run_tests}}. Minden egyes tesztelést szolgáló metódust, amelyet a "run_tests" végrehajtásra vár, kötelező - mint a példabeli test_hello (lásd fent) a "test" sztringgel kell kezdenünk, mert erről ismeri fel a run_test a tesztelni kívánt függvényt.

Metódusok

run_tests

  • 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 tesztek vitalapján használjuk.
    {{#invoke:Bananas/testcases|run_tests}}

preprocess_equals

  • 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

  • preprocess_equals_many(prefix, suffix, cases)
    
    : 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:BananasArgs | add |', '}}', {
        {'2|3', '5'},
        {'-2|2', '0'},
    })

preprocess_equals_preprocess

  • preprocess_equals_preprocess(text, expected)
    
    : Gives two pieces of wikitext to preprocess and determines if they produce the same value. Useful for comparing scripts to existing templates.
    self:preprocess_equals_preprocess('{{#invoke:Bananas | hello}}', '{{Hello}}')

preprocess_equals_preprocess_many

  • preprocess_equals_preprocess_many(prefix, suffix, cases)
    
    : Performs a series of preprocess_equals_preprocess() calls on a set of given pairs. The prefix/suffix supplied for both arguments is added automatically. If in any case the second part is not specified, the first part will be used.
    self:preprocess_equals_preprocess_many('{{#invoke:Foo | spellnum |', '}}', '{{spellnum', '}}', {
        {'2'}, -- equivalent to {'2','2'},
        {'-2', '-2.0'},
    })

equals

  • equals(name, actual, expected)
    
    : Gives a computed value and the expected value, and checks if they are equal according to the == operator. Useful for testing modules that are designed to be used by other modules rather than using #invoke.
    self:equals('Simple addition', 2 + 2, 4)

equals_deep

  • equals_deep(name, actual, expected)
    
    : Like equals, but handles tables by doing a deep comparison. Neither value should contain circular references, as they are not handled by the current implementation and may result in an infinite loop.
    self:equals_deep('Table comparison', createRange(1,3), {1,2,3})