TDD é uma metodologia ágil que envolve escrever testes unitários antes de implementar funcionalidades para garantir que o código funcione conforme o esperado. O ciclo do TDD envolve escrever testes em vermelho, fazer o código funcionar para passar nos testes (verde) e refatorar o código (refactor). Exemplos de frameworks para testes unitários incluem JUnit para Java e Jasmine para JavaScript.
12. import org.junit.Test;
public class MeuTeste {
@Test
public void
multiplicacaodeInteirosPorZeroDeveRetornarZero() {
MyClass tester = new MyClass();
assertEquals("10 x 0 deve ser 0", 0, tester.multiply(10,
0));
assertEquals("0 x 10 deve ser 0", 0, tester.multiply(0,
10));
assertEquals("0 x 0 deve ser 0", 0, tester.multiply(0, 0));
}
}
Ou desenvolvimento agil de software é um conjunto de metodologias de desenvolvimento. O desenvolvimento ágil, tal como qualquer metodologia de software, providencia uma estrutura conceitual para reger projetos de engenharia de software.
Os valores relacionados ao Desenvolvimento ágil de software, segundo o Manifesto Agil são:
Indivíduos e interações sobre processos e ferramentas;
Software funcional sobre documentação abrangente;
Colaboração do cliente sobre negociação de contratos;
Responder a mudanças sobre seguindo um plano
Para chegar onde eu quero, vou focar mais em uma técnica da metodologia conhecida como XP
Extreme Programming é um conjunto de práticas de programação que visam a simplicidade, praticidade, qualidade e flexibilidade de seu sistema. Os testes de unidade fazem parte dessa metodologia de programação.
Vamos ao que interessa
Isso mesmo! Desenvolvemos o nosso software baseado em testes que são escritos antes do nosso código de produção!
Mas Serena, ainda não entendi, eu sou DEV, por que eu escreveria testes?
Código mais limpo, já que escrevemos códigos simples para o teste passar
Segurança no Refactoring pois podemos ver o que estamos ou não afetando
Segurança na correção de bugs
Maior produtividade já que o desenvolvedor encontra menos bugs e não desperdiça tempo debugando
Código da aplicação mais flexível, já que para escrever testes temos que separar em pequenos "pedaços"
o nosso código, para que sejam testáveis, ou seja, nosso código estará menos acoplado.
Basicamente o TDD se baseia em pequenos ciclos de repetições, onde para cada funcionalidade do sistema um teste é criado antes.
Escrevemos um Teste que inicialmente não passa (Red)Adicionamos uma nova funcionalidade do sistemaFazemos o Teste passar (Green)Refatoramos o código da nova funcionalidade (Refactoring)Escrevemos o próximo Teste
Existem vários frameworks de testes, para as diferentes linguagens