Модуль:UnitTests/doc

Материал из Буквицы
Версия от 05:08, 4 марта 2015; Karaby (обсуждение | вклад) (Новая страница: «UnitTests — модуль для проведения юнит-тестов других модулей. == П…»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Это страница документации Модуль: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>