[Tarsis Azevedo] 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

Permalink

| Leave a comment  »