SlideShare une entreprise Scribd logo
1  sur  27
Test-DrivenDevelopment
Test-DrivenDevelopment
CleanCodethat works
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
Adicione um testezinho... Para testar o quê???
Baseado nos requisitos e nas estórias de aceitação, faça uma lista com exemplos de coisas que você SABE que precisará fazer
[object Object]
listar títulos em ordem alfabética
 salvar a lista em um arquivo texto
 carregar a lista de um arquivo texto
 adicionar novos livros,[object Object]
listar títulos em ordem alfabética
 salvar a lista em um arquivo texto
 carregar a lista de um arquivo texto
 adicionar novos livros,[object Object]
@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()); 		}
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
Faça compilar... publicclassBookManager {  publicvoidaddBook(Book book){  } publicList<Book> getSortedByTitle() { returnnull; 	} } publicclass Book { public Book(String title) {  } public String getTitle{ returnnull; } }
Faça uma pequena mudança Fake it Use obviousimplementations Triangulation
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”; } }
Remova duplicação
publicclassBookManager {  privateList<Book> books = newArrayList<String>(); publicvoidaddBook(Book book){  books.add(book); } publicList<Book> getSortedByTitle() { returnCollections.sort(books); 	} } publicclass Book { private String title; public Book(String title) {  this.title = title; } public String getTitle{ returntitle; } }
(se você fez direito, claro)

Contenu connexe

En vedette

Satyanarayana_Sarvirala_RHCSA
Satyanarayana_Sarvirala_RHCSASatyanarayana_Sarvirala_RHCSA
Satyanarayana_Sarvirala_RHCSA
Satya Sarvirala
 
Taller ayudas tecnicas(comunicacion)chipi sep(dia3)
Taller ayudas tecnicas(comunicacion)chipi sep(dia3)Taller ayudas tecnicas(comunicacion)chipi sep(dia3)
Taller ayudas tecnicas(comunicacion)chipi sep(dia3)
Virimimi
 

En vedette (12)

105.10.00 精實團隊與菁英領導-企業內訓 -詹翔霖教授
105.10.00 精實團隊與菁英領導-企業內訓 -詹翔霖教授105.10.00 精實團隊與菁英領導-企業內訓 -詹翔霖教授
105.10.00 精實團隊與菁英領導-企業內訓 -詹翔霖教授
 
Satyanarayana_Sarvirala_RHCSA
Satyanarayana_Sarvirala_RHCSASatyanarayana_Sarvirala_RHCSA
Satyanarayana_Sarvirala_RHCSA
 
Mi Contexto De Formación SENA
Mi Contexto De Formación SENAMi Contexto De Formación SENA
Mi Contexto De Formación SENA
 
La Metamorfosis Aspectos Narrativos - Franz Kafka
La Metamorfosis Aspectos Narrativos - Franz KafkaLa Metamorfosis Aspectos Narrativos - Franz Kafka
La Metamorfosis Aspectos Narrativos - Franz Kafka
 
Rcp
RcpRcp
Rcp
 
U.D CHINA. EI
U.D CHINA. EIU.D CHINA. EI
U.D CHINA. EI
 
Gu scs team2 a_metro project_pdf
Gu scs team2 a_metro project_pdfGu scs team2 a_metro project_pdf
Gu scs team2 a_metro project_pdf
 
Taller ayudas tecnicas(comunicacion)chipi sep(dia3)
Taller ayudas tecnicas(comunicacion)chipi sep(dia3)Taller ayudas tecnicas(comunicacion)chipi sep(dia3)
Taller ayudas tecnicas(comunicacion)chipi sep(dia3)
 
Opción válida - Familia sin hijos
Opción válida - Familia sin hijosOpción válida - Familia sin hijos
Opción válida - Familia sin hijos
 
Sabina esguerra
Sabina esguerraSabina esguerra
Sabina esguerra
 
Sistema yprocedimientos administrativos
Sistema yprocedimientos administrativosSistema yprocedimientos administrativos
Sistema yprocedimientos administrativos
 
Lembaran kerja kanak-kanak 3
Lembaran kerja kanak-kanak 3Lembaran kerja kanak-kanak 3
Lembaran kerja kanak-kanak 3
 

Dernier

República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdfRepública Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
LidianeLill2
 
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
Autonoma
 

Dernier (20)

AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022AULÃO de Língua Portuguesa para o Saepe 2022
AULÃO de Língua Portuguesa para o Saepe 2022
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
Acessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidadeAcessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidade
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
Aula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .pptAula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .ppt
 
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptxSlides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
 
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdfRepública Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
 
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdfMESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdf
 
Novena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João EudesNovena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João Eudes
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
tensoes-etnicas-na-europa-template-1.pptx
tensoes-etnicas-na-europa-template-1.pptxtensoes-etnicas-na-europa-template-1.pptx
tensoes-etnicas-na-europa-template-1.pptx
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
aprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubelaprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubel
 
Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)
 
Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)
 
Missa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdfMissa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdf
 
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM  POLÍGON...
Polígonos, Diagonais de um Polígono, SOMA DOS ANGULOS INTERNOS DE UM POLÍGON...
 
Quiz | Dia da Europa 2024 (comemoração)
Quiz | Dia da Europa 2024  (comemoração)Quiz | Dia da Europa 2024  (comemoração)
Quiz | Dia da Europa 2024 (comemoração)
 
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
 

TDD