Модуль:UnitTests/Документация
UnitTests — модуль для проведения юнит-тестов других модулей.
Пример использования для модуля en:Module:Bananas
правитьСоздать подстраницу модуля en:Module:Bananas/tests:
-- Unit tests for [[Module:Bananas]]. Click talk page to run tests.
local p = require('Module:UnitTests')
function p:test_hello()
self:preprocess_equals('{{#invoke:Bananas | hello}}', 'Hello, world!')
end
return p
На странице en:Module talk:Bananas/tests вставить:
{{#invoke: Bananas/tests | run_tests}}
На странице en:Module talk:Bananas/tests можно будет увидеть результат выполнения юнит тестов.
Методы модуля
править- run_tests(differs_at): запустить тесты. Если указано «differs_at=1», то будет добавлена колонка с указанием позиции первого символа, в котором результат отличается от ожидаемого. Обычно используется на странице обсуждения теста.
{{#invoke:Bananas/tests|run_tests}}
- preprocess_equals(text, expected): выполнить тест. Аргументы:
text
— фрагмент викитекста для тестирования;expected
— ожидаемый результат.
self:preprocess_equals('{{#invoke:Bananas | hello}}', 'Hello, world!')
- preprocess_equals_many(prefix, suffix, cases): выполнить серию тестов. Аргументы:
prefix
,suffix
— дополнение перед/после викитекста в тестах;cases
— список тестов.
self:preprocess_equals_many('{{#invoke:BananasArgs | add |', '}}', {
{'2|3', '5'},
{'-2|2', '0'},
})
- preprocess_equals_preprocess(text, expected): сравнивает результат двух фрагментов викитекста. Обычно используется для проверки идентичности обычного шаблона и шаблона со скриптом.
self:preprocess_equals_preprocess('{{#invoke:Bananas | hello}}', '{{Hello}}')
- preprocess_equals_preprocess_many(prefix, suffix, cases): то же, что и
preprocess_equals_preprocess
, но для серии тестов. Аргументы те же, что и вpreprocess_equals_many
.
self:preprocess_equals_many('{{#invoke:Foo | spellnum |', '}}', '{{spellnum', '}}', {
{'2'}, -- equivalent to {'2','2'},
{'-2', '-2.0'},
})
- equals(name, actual, expected): вычислить значение и сравнить с ожидаемым результатом. Обычно используется для тестирования модулей, вызывающих другие модули, без использования #invoke.
self:equals('Simple addition', 2 + 2, 4)
Это страница документации Модуль:UnitTests