Tutorial PyUnit:Python Unit Testing Framework (com exemplo)
O que é teste de unidade?
O teste de unidade em Python é feito para identificar bugs no início do estágio de desenvolvimento do aplicativo, quando os bugs são menos recorrentes e menos dispendiosos para corrigir.
Um teste de unidade é um teste de nível de código com script projetado em Python para verificar uma pequena “unidade” de funcionalidade. O teste de unidade é uma estrutura orientada a objetos baseada em acessórios de teste.
Técnicas de teste de unidade Python
O teste de unidade do Python envolve principalmente testar um módulo específico sem acessar nenhum código dependente. Os desenvolvedores podem usar técnicas como stubs e mocks para separar o código em “unidades” e executar testes de nível de unidade nas partes individuais.
- TDD de desenvolvimento orientado a testes: O Teste Unitário deve ser feito junto com o Python, e para isso os desenvolvedores utilizam o método Test-Driven Development. No método TDD, você primeiro projeta os testes de unidade do Python e só então continua escrevendo o código que implementará esse recurso.
- Stubs e mocks: São duas técnicas principais que simulam métodos falsos que estão sendo testados. Um Toco é usado para preencher alguma dependência necessária para que o teste de unidade seja executado corretamente. Uma simulação por outro lado é um objeto falso que executa os testes onde colocamos assert.
As intenções de ambos os métodos são as mesmas para eliminar o teste de todas as dependências de uma classe ou função.
Estrutura de teste de unidade Python
Para facilitar o processo de Teste Unitário e melhorar a qualidade do seu projeto, é recomendado o Python Unit Testing Framework. A estrutura de teste de unidade inclui
- PyUnit: O PyUnit suporta fixtures, casos de teste, suítes de teste e um executor de teste para o teste automatizado do código. No PyUnit, você pode organizar casos de teste em suítes com os mesmos acessórios
- Nariz: Os plug-ins integrados do Nose ajudam você com captura de saída, cobertura de código, doctests, etc. A sintaxe do Nose é bem mais simples e reduz as barreiras para escrever testes. Ele estende o teste unitário do Python para facilitar os testes.
- Documento: O script de teste Doctest vai em docstring com uma pequena função na parte inferior do arquivo. O Doctest permite testar seu código executando exemplos incluídos na documentação e verificando se eles retornaram os resultados esperados. O caso de uso do doctest é menos detalhado e não captura casos especiais. Eles são úteis como uma documentação expressiva do caso de uso principal de um módulo e seus componentes.
Teste de unidade com PyUnit
Pyunit é uma porta Python do JUnit. Como parte do Pyunit, no módulo unittest existem cinco classes principais.
- Classe TestCase :A classe TestCase contém as rotinas de teste e fornece ganchos para criar cada rotina e limpar posteriormente
- Classe TestSuite :Ele serve como um contêiner de coleção e pode possuir vários objetos testcase e vários objetos testsuites
- Classe TestLoader :esta classe carrega casos de teste e suítes definidos localmente ou de um arquivo externo. Ele emite um objeto testsuite que possui esses conjuntos e casos
- Classe TextTestRunner :Para executar os testes ele atende uma plataforma padrão para executar os testes
- A classe TestResults :oferece um contêiner padrão para os resultados do teste
Projetando um caso de teste para testes em Python usando PyUnit
Um teste de unidade fornece uma classe base, caso de teste, que pode ser usada para criar novos casos de teste. Para projetar o caso de teste, existem três conjuntos de métodos usados:
unittest.TestCase
setUp() teardown() skipTest(aMesg:string) fail(aMesg:string) id():string shortDescription():string
No primeiro conjunto estão os ganchos de pré e pós-teste. O método setup() começa antes de cada rotina de teste, o teardown() depois da rotina.
O segundo conjunto de métodos controla a execução do teste. Ambos os métodos usam uma string de mensagem como entrada e cancelam um teste em andamento. Mas o método skiptest() aborta o teste atual enquanto o método fail() falha completamente.
O último ou terceiro método ajuda a determinar o teste. O método id() retorna uma string que consiste no nome do objeto testcase e da rotina de teste. E o método shortDescription() retorna o comentário docstr no início de cada rotina de teste.
Vantagens de usar o teste de unidade do Python
- Ajuda você a detectar bugs no início do ciclo de desenvolvimento
- Ajuda você a escrever programas melhores
- Sincroniza facilmente com outros métodos e ferramentas de teste
- Terá muito menos bugs
- É mais fácil modificar no futuro com muito menos consequências
python
- Tutorial de classe abstrata C# com exemplo:O que é abstração?
- Tutorial de estrutura de automação de teste de IU codificado
- Função Python String strip () com EXEMPLO
- Python String count() com EXEMPLOS
- Função Python round() com EXEMPLOS
- Função Python map() com EXEMPLOS
- Python Timeit() com exemplos
- Yield in Python Tutorial:Generator &Yield vs Return Example
- Contador Python em coleções com exemplo
- Python List index() com exemplo