Detta är dokumentationssidan för Modul:UnitTests
UnitTests erbjuder funktioner för test av Lua-funktioner genom att använda require. Se en:Wikipedia:Lua#Unit_testing för detaljer. Following is a sample from Modul:HelloWorld/testcases:
-- Unit tests for [[Modul:HelloWorld]]. Gå till diskussionssidan för att exekvera testerna.
local p = require('Modul:UnitTests')
function p:test_hej()
self:preprocess_equals('{{#invoke:HelloWorld | hej}}', 'Hello World!')
end
return p
Diskussionssidan Moduldiskussion:HelloWorld/testcases exekverar koden med {{#invoke: HelloWorld/testcases | run_tests}}
. Testfunktioner som test_hej ovan måste börja med "test".
Procedurer
redigerarun_tests
redigerarun_tests(differs_at)
: Kör alla testfall. Om "differs_at=1" anges så läggs en kolumn till som visar den första teckenposition där det förväntade och det erhållna resultatet skiljer sig. Används normalt på en diskussionssida till testfallen för en modul.
{{#invoke:HelloWorld/testcases|run_tests}}
preprocess_equals
redigerapreprocess_equals(text, expected)
: Anger en wikitext som ska pre-processas och det förväntade resultatet. Script och mallar kan anropas på samma sätt som de skulle göras på en artikelsida.
self:preprocess_equals('{{#invoke:HelloWorld | hej}}', 'Hello World!')
preprocess_equals_many
redigerapreprocess_equals_many(prefix, suffix, cases)
: Utför en följd av anrop av preprocess_equals() med en angiven mängd par av wikitexter och förväntade resultat. Givna prefix och suffix läggs automatiskt till varje wikitext.
self:preprocess_equals_many('{{#invoke:HelloWorld | addera |', '}}', {
{'2|3', '5'},
{'-2|2', '0'},
})
preprocess_equals_preprocess
redigerapreprocess_equals_preprocess(text, expected)
: Avgör om två givna wikitexter resulterar i samma värde när de exekveras. Användbart för att jämföra script med befintliga mallar.
self:preprocess_equals_preprocess('{{#invoke:HelloWorld | hej}}', '{{Hello}}')
preprocess_equals_preprocess_many
redigerapreprocess_equals_preprocess_many(prefix, suffix, cases)
: Utför en följs av anrop av preprocess_equals_preprocess() för en given uppsättning par. Angivna prefix/suffix för båda argumenten läggs automatiskt till. Om den andra delen saknas i något fall så används den första delen.
self:preprocess_equals_preprocess_many('{{#invoke:Foo | spellnum |', '}}', '{{spellnum', '}}', {
{'2'}, -- equivalent to {'2','2'},
{'-2', '-2.0'},
})
equals
redigeraequals(name, actual, expected)
: Jämför om ett beräknat och ett förväntat värde är lika (enligt ==-operatorn). Användbart för testning av moduler som är gjorda för att användas av andra moduler snarare än genom anrop med #invoke.
self:equals('Simple addition', 2 + 2, 4)
equals_deep
redigeraequals_deep(name, actual, expected)
: Fungerar som equals, men hanterar tabeller genom att göra en "djup jämförelse". Inget värde får innehålla en cirkulär referens, eftersom de ej hanteras av nuvarnade implementation och kan resultera i oändliga loopar.
self:equals_deep('Table comparison', createRange(1,3), {1,2,3})
Se även
redigera- en:Module:ScribuntoUnit – alternativ unit test-modul