Python Doctest

Python Doctest
“Sabemos que o Docstring da Python fornece mais detalhes sobre suas funções e aulas. Os pacotes Doctest escrevem o programa que começa com >>> e contrasta os resultados com o que foi antecipado. Ao executar ilustrações incluídas na especificação e confirmando que elas fornecem os resultados desejados, a ferramenta Doctest permite avaliar seu script. Ele extrai amostras do texto de referência, as executa e contrasta os resultados com o valor alvo.

O fato de não ter havido API para memorizar na versão mais básica torna o Doctest mais simples para muitos programadores usarem no UNITTEST. A criação de testes de Doctest pode ser mais difícil do que apenas consumir mais unitter, mesmo quando as instâncias ficam mais complicadas, pois não há tratamento de recursos.”

Exemplo 01

Vamos começar com o primeiro exemplo deste artigo agora. Temos iniciado este exemplo com a importação do módulo "Doctest" na primeira linha. Depois disso, estamos definindo uma nova função, "testando" com o parâmetro de "args" ponteiro apontando para o uso de valores inteiros para o método de teste. Dentro deste método, estamos usando as cotações triplas para passar os valores inteiros para o método de "teste" para testar se a soma de todos os valores passados ​​é igual a um determinado valor definido na próxima linha.

Então, passamos os 5 valores para o método de teste e esperamos o resultado de 49 como uma soma. Em seguida, tentamos outro teste passando três números para a função de teste esperando o resultado de 22 e, no último, novamente, 5 valores foram passados ​​para esperar o resultado de 15. A função Sum () tem tomado os valores passados ​​para a função de teste como um argumento e retornando a soma de todos. A função testmod () do módulo Doctest de Python foi usada aqui para testemunhar que o valor calculado é o mesmo que o valor esperado. Caso contrário, ele lançará um erro em nosso console.

Vamos salvar e executar este programa na ferramenta Spyder 3 para ver o que acontece na parte do teste. O código detalhado deste exemplo é visto na captura de tela.

Após a execução deste código Python, temos a saída exibida abaixo. Isso mostra que o programa está tentando testar os 5 valores e esperar 49 como uma soma. O valor retornado "OK" mostra que o teste foi aprovado e validado; A soma retornada é 49. O próximo teste foi aplicado a três valores que esperam 22 como uma soma, enquanto o teste falhou porque a soma que recebemos era 21.

Após o uso da função de teste Doctest nos próximos 5 valores, passamos no teste como esperado e o valor da soma retornado é 15. No final, fomos relatados com o resultado de que um total de 2 testes foi passado de 3. Na captura de tela, o resultado deste exemplo é mostrado.

Exemplo 02

Estamos usando outro exemplo para usar o módulo Doctest em nosso código Python para testemunhar a uma condição matemática diferente. Então, iniciamos este exemplo com a importação da função de testmod do pacote Doctest em Python. A função "fato" foi definida com um valor variável "V" como um argumento. As citações triplas seguidas pelo signo >>> estão usando a função FACT () para descobrir o fatorial de um "4" e "2" em duas linhas diferentes. Embora o resultado esperado seja de 24 e 3 neste caso.

A condição "se" foi usada para verificar se o valor da variável "V" passada para a função de fato é igual ou inferior a 1 e retorna 1; Caso contrário, o fatorial de um valor "V" seria calculado pelas fórmulas "V*FACT (V-1)".

A função principal () está aqui para usar a função tesmod () usando a função "fato" dentro dela. Seria testar que o fatorial dos valores "4" e "2" passou para o fato () funções seriam 24 e 3 ou não. Este programa foi salvo e está pronto para uso agora. O código detalhado deste exemplo é visto na captura de tela.

Depois de executá -lo, sabemos que o fatorial de 4 devolvido pela função é 24, o que é igual ao resultado esperado, i.e. O teste foi aprovado neste caso, eu.e. 24. Para o segundo valor, o teste falhou, pois o fatorial esperado de 2 é 3, enquanto o resultado real deve ser 2. Então, o relatório está exibindo que 1 teste foi passado enquanto 1 falhou. Na captura de tela, o resultado deste exemplo é mostrado.

Exemplo 03

Dentro deste exemplo, estamos importando a função do testmod de seu módulo Doctest e usando a função check () para verificar se o resultado da multiplicação de dois valores é o esperado ou não. Na primeira chamada de função, passamos 5 e 3 e esperamos 15 como resultado de multiplicação, enquanto na segunda chamada de função, passamos o personagem M e o número inteiro 3 enquanto esperamos "mmm" como resultado da multiplicação.

O resultado da multiplicação "M*R" seria retornado à função de chamada principal (). A função principal () está chamando apenas a função do testmod para executar 2 testes. Este programa agora está concluído e pronto para ser executado. O código detalhado deste exemplo é visto na captura de tela.

Na execução, obtemos os mesmos valores para ambos os resultados da multiplicação que o resultado esperado, i.e. 15 e “mmm”. Nesse caso, nenhum caso de teste foi falhado, eu.e. Ambos os testes são passados.

Conclusão

É isso e tudo sobre o uso do Pacote Doctest de Python em nossos códigos para testar programas. Para isso, tentamos três exemplos diferentes para comparar o valor resultante com o valor esperado das funções, recebendo alguns argumentos. Todos os três exemplos são simples e fáceis de fazer na ferramenta Spyder 3, e você pode aprender facilmente o médico praticando -os.