15.12.2022 Views

Python Eficaz

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

até aqui o código era sempre testado em condição de isolamento. Essa é a

diferença entre unit tests (testes de unidade) e integration tests (testes de

integração). No Python, é importante escrever ambos os tipos de testes pela

mesmíssima razão: não temos garantia de que os módulos conseguirão trabalhar

juntos a não ser que tenhamos prova disso.

Nota

Dependendo do projeto, também pode ser útil definir testes baseados em

dados (data-driven tests) ou organizar testes em diferentes conjuntos de

funcionalidades relacionadas. Para esse fim, os relatórios de cobertura de

código (code coverage reports) e outras ferramentas avançadas como os

pacotes externos nose (http://nose.readthedocs.org/) e o pytest (http://pytest.org/), ambos

de código aberto, podem ser especialmente úteis.

Lembre-se

• A única maneira de se ter confiança num programa em Python é escrevendo

testes.

• O módulo nativo unittest fornece a maioria dos recursos de que precisamos

para escrever bons testes.

• Podemos definir os testes construindo subclasses de TestCase e definindo um

método por comportamento que gostaríamos de testar. Os métodos de teste

nas classes TestCase devem obrigatoriamente começar com a palavra test.

• É importante escrever tanto testes de unidade (unit tests), para testar

funcionalidades isoladamente, como testes de integração (integration tests),

para testar a interação entre módulos quando existir.

Item 57: Prefira usar depuradores interativos como o

pdb

Quem disser que nunca encontrou um bug em seu próprio código é mentiroso.

Encontrá-los é preciso, e a função print pode ajudar bastante a localizar sua

origem (consulte o Item 55: “Use strings com a função repr para depuração”).

Escrever testes para casos específicos que causam problema é outra grande

maneira de isolar problemas (consulte o Item 56: “Teste absolutamente tudo com

unittest”).

www.full-ebook.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!