TD DTest-driven development
por quetestamos?
comotestamos?
TE S TE SM ANUAIS   :(
TE S TE SAUTO M ATIZAD O S       :)
Antes do TD D ...
código escritoantes dos testes...
é difícil de testar...
é difícil de usar...
design
TD D é mais que testes,é um método para designde software.
Testes verificam ausabilidade do código
Adição novas funcionalidadesem pequenos passos
Feedback rápidodas mudanças no código
Não quero usar TD D !!!
“Você não tem tempo para escrevertestes unitários, porque gastatempo demais debugando.”
M udança de hábito
R efactoring
Ferramentas
Selenium
S tubs
S tubs//criar mockLinkedList mockedList = mock(LinkedList.class);//stubbing...when(mockedList.get(0)).thenReturn(“first”);...
M ocks
import static org.mockito.Mockito.*;//criar mockList mockedList = mock(List.class);//usando o objeto mockmockedList.add(“o...
S tubs testam o estadodos objetos apósexecução
M ocks testam ainteração entreobjetos duranteexecução
M ão na massa
C alculadora           - S omar dois números inteiros          - S ubtrair dois números inteiros         - M ultiplicar do...
O problema com Test-D rivenD evelopment é a palavra “Teste”
BDDB ehavior-D riven D evelopment
public class CalculadoraSpec {    @Test    public void deveSomarDoisInteiros() {        ...    }    @Test    public void d...
E specificação
C onta C orrente- Um depósito deve aumentar o saldo daconta...- Um saque deve diminuir o saldo da conta...- Não deve permi...
“E screva código novo apenas sevocê primeiro tiver um testefalhando.”Kent B eck
insidecode.com.br  blog.insidecode.com.brleonardo@ insidecode.com.br@ insidecode @ leonardom
TDD - Test Driven Development
TDD - Test Driven Development
Próximos SlideShares
Carregando em…5
×

TDD - Test Driven Development

623 visualizações

Publicada em

Apresentação de TDD utilizada no Workshop de TDD da Semana de Informática da FATEC de Mococa.

Publicada em: Educação, Negócios, Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
623
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
12
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

TDD - Test Driven Development

  1. 1. TD DTest-driven development
  2. 2. por quetestamos?
  3. 3. comotestamos?
  4. 4. TE S TE SM ANUAIS :(
  5. 5. TE S TE SAUTO M ATIZAD O S :)
  6. 6. Antes do TD D ...
  7. 7. código escritoantes dos testes...
  8. 8. é difícil de testar...
  9. 9. é difícil de usar...
  10. 10. design
  11. 11. TD D é mais que testes,é um método para designde software.
  12. 12. Testes verificam ausabilidade do código
  13. 13. Adição novas funcionalidadesem pequenos passos
  14. 14. Feedback rápidodas mudanças no código
  15. 15. Não quero usar TD D !!!
  16. 16. “Você não tem tempo para escrevertestes unitários, porque gastatempo demais debugando.”
  17. 17. M udança de hábito
  18. 18. R efactoring
  19. 19. Ferramentas
  20. 20. Selenium
  21. 21. S tubs
  22. 22. S tubs//criar mockLinkedList mockedList = mock(LinkedList.class);//stubbing...when(mockedList.get(0)).thenReturn(“first”);//imprime “first”System.out.prinlnt(mockedList.get(0));//imprime “null” não criamos stub para get(999)System.out.println(mockedList.get(999));
  23. 23. M ocks
  24. 24. import static org.mockito.Mockito.*;//criar mockList mockedList = mock(List.class);//usando o objeto mockmockedList.add(“one”);mockedList.clear();//verificando interaçãoverify(mockedList).add(“one”);verify(mockedList).clear();M ocks
  25. 25. S tubs testam o estadodos objetos apósexecução
  26. 26. M ocks testam ainteração entreobjetos duranteexecução
  27. 27. M ão na massa
  28. 28. C alculadora - S omar dois números inteiros - S ubtrair dois números inteiros - M ultiplicar dois número inteiros - D ividir dois número inteiros
  29. 29. O problema com Test-D rivenD evelopment é a palavra “Teste”
  30. 30. BDDB ehavior-D riven D evelopment
  31. 31. public class CalculadoraSpec { @Test public void deveSomarDoisInteiros() { ... } @Test public void deveSubtrairDoisInteiros() { ... } //outros métodos}
  32. 32. E specificação
  33. 33. C onta C orrente- Um depósito deve aumentar o saldo daconta...- Um saque deve diminuir o saldo da conta...- Não deve permitir efetuar um saquequando saldo é insuficiente...- Um erro deve ocorrer caso um depósitocom valor negativo seja realizado...- Um erro deve ocorrer em caso de saque devalor negativo...
  34. 34. “E screva código novo apenas sevocê primeiro tiver um testefalhando.”Kent B eck
  35. 35. insidecode.com.br blog.insidecode.com.brleonardo@ insidecode.com.br@ insidecode @ leonardom

×