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