DEV Community

Cover image for TDD na prática - JavaScript/TypeScript
Vitor Rios
Vitor Rios

Posted on

TDD na prática - JavaScript/TypeScript

Introdução

Test-Driven Development (TDD) é uma metodologia de desenvolvimento de software que enfatiza a escrita de testes antes do código de produção. Este método incentiva uma abordagem de design cuidadoso e aumenta a confiabilidade do software.

Conceito de TDD

  1. Escreva um Teste: Primeiro, escreva um teste que define uma função ou melhorias de uma função.
  2. Faça o Teste Falhar: Execute o teste e veja-o falhar. Isso confirma que o teste está detectando a ausência da nova funcionalidade.
  3. Escreva o Código: Escreva o código necessário para passar no teste.
  4. Execute o Teste Novamente: Execute os testes e veja-os passar.
  5. Refatore o Código: Melhore o código mantendo-o passando nos testes.

Benefícios do TDD

  • Qualidade do Código: Promove um código mais limpo e de alta qualidade.
  • Manutenção: Facilita a manutenção e a refatoração do código.
  • Redução de Bugs: Diminui significativamente a probabilidade de bugs.
  • Design de Software Melhorado: Encoraja a pensar na funcionalidade antes da implementação.

Exemplo de TDD com JavaScript/TypeScript

Ambiente de Teste

Utilizaremos Jest, uma framework de teste para JavaScript.

Instalação do Jest

npm install --save-dev jest @types/jest ts-jest typescript
Enter fullscreen mode Exit fullscreen mode

Desenvolvendo um Teste

Suponha que queremos desenvolver uma função que soma dois números.

Escreva o Teste Primeiro

// sum.test.ts
import { sum } from './sum';

test('adds 1 + 2 to equal 3', () => {
    expect(sum(1, 2)).toBe(3);
});
Enter fullscreen mode Exit fullscreen mode

Execute o Teste

Execute o teste com npm test e veja-o falhar, pois a função sum ainda não existe.

Implemente a Função

// sum.ts
export const sum = (a: number, b: number): number => {
    return a + b;
};
Enter fullscreen mode Exit fullscreen mode

Refatore o Teste

Após passar no teste, você pode refatorar se necessário, garantindo que o teste ainda passe.

Conclusão

TDD é uma prática poderosa que pode melhorar significativamente a qualidade e a confiabilidade do código em projetos JavaScript e TypeScript. Embora possa parecer mais lento no início, os benefícios a longo prazo em termos de manutenção, redução de bugs e design de software são inestimáveis.

Top comments (0)