21.12.2022 Views

python_para_desenvolvedores_2ed

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

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

Testes automatizados 141

Testes automatizados

A atividade de testar software é uma tarefa repetitiva, demorada e tediosa.

Por isso, surgiram várias ferramentas para automatizar testes. Existem dois

módulos para testes automatizados que acompanham o Python: doctest e

unittest.

O módulo doctest usa as Doc Strings que estão presentes no código para

definir os testes do código. A função testmod() do doctest procura por um

trecho de texto seja semelhante a uma sessão interativa de Python, executa a

mesma sequência de comandos, analisa a saída e faz um relatório dos testes

que falharam, com os erros encontrados.

Exemplo:

"""

fib.py

Implementa Fibonacci.

"""

def fib(n):

"""Fibonacci:

Se n <= 1, fib(n) = 1

Se n > 1, fib(n) = fib(n - 1) + fib(n - 2)

Exemplos de uso:

>>> fib(0)

1

>>> fib(1)

1

>>> fib(10)

89

>>> [ fib(x) for x in xrange(10) ]

[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

>>> fib('')

Traceback (most recent call last):

File "<input>", line 1, in ?

File "<input>", line 19, in fib

TypeError

>>>

Testes definidos para o doctest.

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

Saved successfully!

Ooh no, something went wrong!