Esta wiki foi não teve nenhuma edição nem entrada nos registos durante os últimos 45 dias e foi marcada automaticamente como inativa. Se quiser impedir a wiki de ser fechada mostre alguns sinais de atividade. Se não houver sinais de utilização da wiki nos próximos 15 dias, ela será fechada de acordo com as normas de dormência (que todos os fundadores de wikis aceitam ao pedir uma wiki). Se a wiki for fechada e ninguém a reabrir nos próximos 135 dias, ela será candidata para eliminação. Nota: se é burocrata da wiki, pode ir a Special:ManageWiki e desmarcar "inativa" por si próprio.
De Família Corsi
Ir para navegação Ir para pesquisar

Esta é a página de documentação para Módulo:UnitTests

O módulo UnitTests permite fazer testes a um módulo que podem ser usados por outros scripts utilizando a palavra chave require. Ver en:Wikipedia:Lua#Unit_testing para mais detalhes. Seguindo um exemplo de Módulo:Bananas/Exemplos para testes:

-- Unit tests for [[Módulo:Bananas]]. Click talk page to run tests.
local p = require('Módulo:UnitTests')

function p:test_hello()
    self:preprocess_equals('{{#invoke:Bananas | hello}}', 'Hello, world!',{nowiki=1})
end

return p

A página de discussão Módulo Discussão:Bananas/Exemplos para testes executa o script {{#invoke: Bananas/Exemplos para testes | run_tests}}. Metódos de testes como test_hello exemplificado acima devem começar com "test".

Metódos[editar]

run_tests[editar]

  • run_tests(differs_at): Corre todos os testes. Se "differs_at=1" for definido, uma coluna é adicionada que mostra a posição do primeiro caracter onde o and e esperado e os resultados são diferentes. É normalmente utilizado nas páginas de discussão dos testes ou unit tests.
    {{#invoke:Bananas/Exemplos para testes|run_tests}}

preprocess_equals[editar]

  • preprocess_equals(text, expected, options): Mostra um bocado de textowiki para fazer o preprocessamento e o resultado esperado. Scripts e as predefinições podem ser invocadas da mesma maneira que seriam utilizadas em uma página.
    self:preprocess_equals('{{#invoke:Bananas | hello}}', 'Hello, world!',{nowiki=1})

preprocess_equals_many[editar]

  • preprocess_equals_many(prefix, suffix, cases, options): Calcula uma série de chamadas preprocess_equals() num dado conjunto de pares. Adiciona automaticamente o prefixo dado e sufixo para cada texto.
    self:preprocess_equals_many('{{#invoke:BananasArgs | add |', '}}', {
        {'2|3', '5'},
        {'-2|2', '0'},
    },{nowiki=1})

preprocess_equals_preprocess[editar]

  • preprocess_equals_preprocess(text, expected, options): 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}}',{nowiki=1})

preprocess_equals_preprocess_many[editar]

  • preprocess_equals_preprocess_many(prefix, suffix, cases, options): 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'},
    },{nowiki=1})

equals[editar]

  • equals(name, actual, expected, options): 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,{nowiki=1})

equals_deep[editar]

  • equals_deep(name, actual, expected, options): 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},{nowiki=1})

Ver também[editar]


Cookies nos ajudam a entregar nossos serviços. Ao usar nossos serviços, você concorda com o uso de cookies.