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:
[python]
class Calculadora(object):
@staticmethod
def soma(num1, num2):
return num1 + num2
[/python]
Podemos escrever os testes da seguinte maneira:
[python]
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()
[/python]
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!

