Terminei hoje de ler os Capítulos 9 e 10.
O Capítulo 9 trata de TDD e Encapsulamento. Segundo Aniche, "encapsular é esconder os detalhes de como a classe realiza sua tarefa; as outras classes devem conhecer apenas o quê ela faz." Encapsulamente sempre foi um dos quesitos principais da Orientação a Objetos (OO). Lembro de textos que li quando OO ainda era novidade nos cursos de graduação em Computação no Brasil (na década de 1990, quando estudei na UFAL) e todos os textos enfatizavam a importância do encapsulamento.
Neste capítulo, Aniche apresenta o exemplo de um Processador de Boletos. Primeiro apresenta um design com encapsulamento falho, mostra como os testes junto com o conhecimento de design OO indicam esta falha e depois apresenta a correção.
O núcleo do TDD Fonte: http://www.javacodegeeks.com/2012/05/test-driven-development-win-win.html |
Entre outras coisas, apresenta conceitos como "Tell, Don't Ask", "Lei de Demeter", "intimidade inapropriada", "classes anêmicas". Enfim, aprendi bastante com este capítulo.
O Capítulo 10 é sobre Testes de Integração e TDD. Apresenta o que são Testes de Sistema, Testes de Integração e Testes de Unidade. Discute quando não usar Mocks. Ensina a fazer testes de DAOs. Questiona se devemos usar TDD em Testes de Integração ou em Aplicações Web. Tudo muito bem didático e fácil de entender.