5. O ciclo Adicione um testezinho Rode todos os testes para ver falhando Faça uma pequena mudança Rode todos os testes para ver bem suceder Remova duplicação
17. @Test publicvoidtestGetSortedList(){ BookManager manager = newBookManager(); manager.addBook( new Book(“Harry Potter e a pedra filosofal”)); manager.addBook( newBook(“GrandesEsperanças”)); List<Book> sortedList = manager.getSortedByTitle(); assertEquals(“GrandesEsperanças”, sortedList.get(0).getTitle()); }
18. java.lang.Error: Unresolved compilation problems: BookManager cannot be resolved to a type BookManager cannot be resolved to a type Book cannot be resolved to a type Book cannot be resolved to a type Book cannot be resolved to a type
19.
20. Faça compilar... publicclassBookManager { publicvoidaddBook(Book book){ } publicList<Book> getSortedByTitle() { returnnull; } } publicclass Book { public Book(String title) { } public String getTitle{ returnnull; } }
21.
22. Faça uma pequena mudança Fake it Use obviousimplementations Triangulation
23. publicclassBookManager { publicvoidaddBook(Book book){ } publicList<Book> getSortedByTitle() { returnnewArrayList<String>().add( newBook(“indo pro buraco negro...”)); } } publicclass Book { public Book(String title) { } public String getTitle{ return“GrandesEsperanças”; } }
29. menosdefeitos código modularizado e extensível torna debugging menos frequente ajuda a manter os desenvolvedores focados nos requisitos repetição reforça modelo mental do código inspira confiança para mudanças somente o necessário é implementado
30. as vezes é difícil usar: interface, rede, banco de dados não substitui outros esforços de Q.A. também precisam de manutenção testes mal escritos são duros pra manter é preciso o time estar comprometido existe a tendência de se ignorar testes ruins
31. “Deve-se aprender fazendo a coisa; pelo pensamento você acha que sabe. Você não tem certeza, até que você tente.” Sófocles