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.
Bom, por enquanto é só isso amigos… até a próxima!
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