TDD - eTecnologia/projeto-genesis GitHub Wiki
TDD - Desevolvimento Guiado por Testes tem como premissa que o código deve ser continuamente testado e refatorado com objetivo de melhorar qualidade do código, reduzir defeitos (bugs) e aprimorar a escrito do código. TDD é aplicação do conceito: "test-first".
O TDD é uma técnica de desenvolvimento de software que se relaciona com o conceito de verificação e validação e se baseia em um ciclo curto de repetições:
Existem bons livros de refência:
O livo de refência: TDD Desenvolvimento Guiado por Testes do Kent Beck (Criador do XP - Extreme Programming)
Mas, o livro que recomendamos é o Test-Driven Development by Example do Kent Beck, em inglês:
Resenha do Livro:
Desenvolvimento Orientado a Testes por Exemplo é dividido em 3 partes. O livro inicia com uma rápida introdução ao processo TDD (vermelho, verde, refatoração). Para quem não conhece o TDD, a ideia é sempre escrevermos os testes primeiro (test-first). Então, a primeira coisa que fazemos é escrever um teste com falha (vermelho). Em seguida, escrevemos código suficiente para que o teste passe (verde). Por fim, eliminamos a duplicação e/ou retrabalhamos o design, refatoramos, para tornar o código que era "apenas o suficiente para passar" em código de qualidade.
Primeira Parte: O Exemplo de Dinheiro Na primeira parte, é desenvolvido um código de modelo típico conduzido completamente por testes O objetivo é fazer que o leitor veja o ritmo de Desenvolvimento Guiado por Testes (TDD). A primeira parte mostra um exemplo de criação de uma maneira de gerenciar dinheiro com diferentes moedas (em Java). O autor começa criando uma lista escrita de coisas que precisam ser testadas com base na funcionalidade necessária.
Segunda Parte: O Exemplo de xUnit Na segunda parte o autor constrói uma estrutura de teste de unidade com Python. Python é usado por causa da natureza dinâmica da linguagem. Parece um pouco meta construir uma estrutura de teste de unidade usando TDD (e, claro, parece um pouco estranho começar). Mas, em última análise, construir um sistema de teste com base em sua capacidade de testar a si mesmo é intrigante.
Terceira Parte: Padrões para Desenvolvimento Orientado a Testes
A terceira parte apresenta um catálogo de diferentes padrões que podem ser usados para ajudar no TDD. Isso inclui os padrões usados para os próprios testes, bem como os padrões usados no código testado.
Para ir além
Tutorial TDD em inglês
Mini Tutorial TDD no Visual Studio
Curso de TDD em inglês
Mini curso de TDD
TDD: Iniciando com TDD no PHP
Como criar TDD com xUnit e .Net Core 3.0 (Vídeo-aula)
TDD na prática com Java usando @MockBean (Aula 1)
TDD na prática com Java usando @MockBean (Aula 2)
Tutorial: Aprenda TDD na Prática com Javascript