Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TDD for Dummies

TDD for Dummies

Palestra relâmpago apresentada no dev in cachu 2013 sobre TDD.

Andrews Medina

May 05, 2013
Tweet

More Decks by Andrews Medina

Other Decks in Programming

Transcript

  1. tdd não é • teste depois de desenvolver • não

    deixa seu código a prova de erros Sunday, May 5, 2013
  2. tdd é • desenvolvimento dirigido a testes • teste antes

    do código • ajuda no foco • garante que o comportamento esperado está acontecendo (ou não) Sunday, May 5, 2013
  3. E =================================================== =================== ERROR: test_menor_que_dois_nao_eh_primo (__main__.PrimosTest) ---------------------------------------------------------------------- Traceback (most recent

    call last): File "teste_primos.py", line 6, in test_menor_que_dois_nao_eh_primo self.assertFalse(eh_primo(1)) NameError: global name 'eh_primo' is not defined ---------------------------------------------------------------------- Ran 1 test in 0.000s FAILED (errors=1) Sunday, May 5, 2013
  4. import unittest from primos import eh_primo class PrimosTest(unittest.TestCase): def test_menor_que_dois_nao_eh_primo(self):

    self.assertFalse(eh_primo(1)) def test_primos(self): self.assertTrue(eh_primo(2)) self.assertTrue(eh_primo(7)) self.assertTrue(eh_primo(17)) Sunday, May 5, 2013
  5. .F =================================================== =================== FAIL: test_primos (__main__.PrimosTest) ---------------------------------------------------------------------- Traceback (most recent

    call last): File "teste_primos.py", line 11, in test_primos self.assertTrue(eh_primo(2)) AssertionError: None is not true ---------------------------------------------------------------------- Ran 2 tests in 0.000s FAILED (failures=1) Sunday, May 5, 2013
  6. def eh_primo(numero): if numero < 2: return False qtd_divisiveis =

    0 for n in range(2, numero+1): if numero % n == 0: qtd_divisiveis += 1 return qtd_divisiveis == 1 Sunday, May 5, 2013
  7. def eh_primo(numero): if numero < 2: return False for n

    in range(2, numero): if numero % n == 0: return False return True Sunday, May 5, 2013
  8. import unittest from primos import eh_primo class PrimosTest(unittest.TestCase): def test_menor_que_dois_nao_eh_primo(self):

    self.assertFalse(eh_primo(1)) def test_primos(self): self.assertTrue(eh_primo(2)) self.assertTrue(eh_primo(7)) self.assertTrue(eh_primo(17)) def test_nao_primos(self): self.assertFalse(eh_primo(20)) self.assertFalse(eh_primo(33)) self.assertFalse(eh_primo(45)) Sunday, May 5, 2013