By

Começando com testes em Python

Olá pessoal, depois de muito tempo sem tempo (e idéias) para postar, eu finalmente tive uma boa idéia. Você ai, que programa em C ou até mesmo já em Python, como você testa seus programas? Fica conferindo a saída do terminal pra ver se está como deveria? E quando o seu programa se torna difícil de testar visualmente? É um problema né? Apresento a você a SOLUÇÃO para os seus problemas: testes automatizados.

Como eu faço isso tio?

É simples! Usando bibliotecas próprias para testes, criamos nossos testes baseados em como o programa deve funcionar. Eles podem ser escritos depois do próprio código ou antes. A prática de escrever testes ANTES é extremamente útil. Com ela você já define como será a interface, a nível de código, das suas classes e funções, e precisa codificar somente o suficiente para passar nos testes criados.

Falar é fácil né? Faz ai, quero ver!

Então tá. Mostrarei um exemplo em Python, por ser simples, mas existem bibliotecas de testes para Java, C, C#, Ruby, etc… basta procurar. O intuito aqui não é comparar as ferramentas de testes de linguagens, mas sim mostrar como testes automatizados podem facilitar (muito) a sua vida. Suponhamos que temos o seguinte código a ser testado:

class Calculadora(object):
    @staticmethod
    def soma(num1, num2):
        return num1 + num2

Podemos escrever os testes da seguinte maneira:

import unittest # biblioteca responsável pela suíte de testes
from should_dsl import * # biblioteca que disponibiliza matchers mais legíveis
from calculadora import Calculadora # importando a nossa classe a ser testada

    class CalculadoraTest(unittest.TestCase):
        def testa_soma(self):
            calculadora.soma(1,1) |should| equal_to(2)

if __name__ == '__main__':
    unittest.main()

Para rodar os testes é só executar o arquivo que os contém. Não é LINDO? Este é um caso muito simples, mas existem casos de programas complexos que seria completamente inviável ficar testando no “olho”. Os testes automatizados te dão um feedback instantâneo (dependendo do que está testando e da quantidade de testes feitos) da aplicação. Em pouquíssimo tempo você sabe se aquela modificação que você acabou de fazer funciona ou não, com o simples uso de 1 comando e sem dor de cabeça.

Python é lindo! Do que eu preciso para criar aplicações com testes no meu PC? *-*

Primeiramente, precisa do Python instalado, claro. A biblioteca unittest já está incluída por padrão juntamente com o interpretador. Para instalar a biblioteca should_dsl é só executar:

 [sudo] pip install should_dsl

Ou, se você o easy_install:

 [sudo] easy_install should_dsl

Agora você já pode começar a parar de ficar imprimindo coisas na tela para “testar” e começar a fazer isso de verdade! Quando você começar a usar, nunca mais vai querer parar! É viciante e ajuda demais.

Gostei, onde encontro mais informação sobre testes em Python?

Na própria documentação do UnitTest: http://docs.python.org/library/unittest.html
No tutorial DiveIntoPython: http://diveintopython.org/unit_testing/

E no Google. :D

Bom, por enquanto é só isso amigos… até a próxima!

One Response to Começando com testes em Python

  1. parafina says:

    Douglas, desculpe o off-topic, mas foi o unico modo que encontrei de falar com vc…
    Cara, vi varios posts seu, e vi que vc manja de programação e tal…
    Sera que pode me ajudar?
    É que intalei o mod cyanogen 6 (froyo 2.2) no meu millestone, e to na frança… comprei um chip pre-pago daqui, mas nao consigo conectar à rede francesa. pede um codigo PIN para se conectar à rede. Tentei o pin que vem com o chip, mas nao da.
    Será que pode me ajudar?
    abcs

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre prompt="" escaped="">