development |should| be_funny - Python e TDD
Should o que?!
O should-dsl é uma ferramenta de teste que tem como principal objetivo tornar o codigo mais legivel e limpo. (http://www.should-dsl.info/)
Ok, mas #comofas?
Depois de instalado (o site ensina como fazer) é bem simples começar a escrever os testes. Tá duvidando, então olha só:
Esse exemplo eh a implementacao das specs da musica Só para Loucos – Ventania
So Para Loucos Spec Spec
class Pessoa: louco = False careta = True def colher_cogumelos(self): self.cogumelos = ['cogumelo1', 'cogumelo2', 'cogumelo3', 'cogumelo4', 'cogumelo5'] return self.cogumelos def fazer_cha(self, *ingredientes): cha = ingredientes return cha def beber(self, oque): self.louco = True self.careta = False self.versos = ['espinho', 'espinho'] return self def guardar_cogumelos(self, cogumelos): self.recanto_espiritual = cogumelos return self.recanto_espiritual class TestSoParaLoucos(unittest.TestCase): def setUp(self): self.pessoa = Pessoa() def test_deve_ser_careta_sem_tomar_nada(self): self.pessoa |should| be_careta def test_deve_estar_louco_depois_de_tomar_um_cha_de_cogumelo(self): cogumelos = self.pessoa.colher_cogumelos() cha_de_cogumelo = self.pessoa.fazer_cha(cogumelos) cha_de_cogumelo |should| contain(cogumelos) self.pessoa.beber(cha_de_cogumelo) |should| be_louco self.pessoa.versos |should| have(2).espinhos def test_deve_guardar_cogumelos_escondidos(self): cogumelos = self.pessoa.colher_cogumelos() self.pessoa.guardar_cogumelos(cogumelos) self.pessoa.recanto_espiritual |should| have(5).cogumelos if __name__ == '__main__': unittest.main()
Só isso?
Isso foi só um exemplo ludico, pra mostrar as possibilidades da ferramneta! Hoje ela contem varios matchers(as funções de teste) para os mais variados objetivos. Voce pode ver a lista completa aqui
Voce tambem pode fazer seus proprios matchers
Acabou?
Se voce gostou do projeto e quer ajudar, aqui vc encontra varias formas de contribuir!
Entao eh isso, Até a proxima xD






