♻️✅ Test-Driven Development
Tags: testing, webdev, beginners, tutorial
Published: 2023-10-26 16:50:12

## Summary
   * [🇺🇸 English](#whats-tdd)
   * [🇧🇷 Portuguese](#o-que-e-tdd)

## What's TDD ? <a name="whats-tdd"></a>

TDD or Test-driven development it's a software development practice that emphasizes creating automated tests before writing the actual code. The TDD process follows a repetitive cycle of three steps:

1. **Write a test**: Initially, you write an automated test that describes the behavior you want to implement in the code. This test typically fails initially because the functionality is not yet implemented.

2. **Write code that satisfies the test**: Next, you write the production code needed to make the test pass. The goal is to make the code pass the test and nothing more. This promotes incremental development and a focus on the requirement.

3. **Refactor the code**: After making the test pass, you can refactor the code, improving its structure and quality without changing its external behavior. Existing tests help ensure that changes do not break existing functionality.


![TDD Cycle Image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xez3pu7kt413djpa923a.jpg)



The TDD cycle is repeated multiple times, with each new test covering a specific aspect of the functionality being developed. This ensures comprehensive testing of the code and that the functionality meets the established requirements. TDD also promotes the creation of a robust set of automated tests that can be run regularly to verify code integrity.

TDD is often associated with agile software development practices and is considered an effective approach to improving code quality and maintainability.

---

## O que é TDD ? <a name="o-que-e-tdd"></a>

TDD é a sigla para Test-Driven Development. É uma prática de desenvolvimento de software que enfatiza a criação de testes automatizados antes da implementação real do código. O processo TDD segue um ciclo repetitivo de três passos:

1. **Escrever um teste**: Inicialmente, você escreve um teste automatizado que descreve o comportamento que você deseja implementar no código. Esse teste geralmente falha inicialmente, pois a funcionalidade ainda não está implementada.

2. **Escreva o código que satisfaça o teste**: Em seguida, você escreve o código de produção necessário para fazer o teste passar. O objetivo é fazer o código passar no teste e nada mais. Isso promove um desenvolvimento incremental e focado no requisito.

3. **Refatorar o código**: Após fazer o teste passar, você pode refatorar o código, melhorando sua estrutura e qualidade sem alterar seu comportamento externo. Os testes existentes ajudam a garantir que as alterações não quebram a funcionalidade existente.


![TDD Cycle Image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xez3pu7kt413djpa923a.jpg)

O ciclo TDD é repetido várias vezes, com cada novo teste cobrindo um aspecto específico da funcionalidade que está sendo desenvolvida. Isso ajuda a garantir que o código seja testado de forma abrangente e que a funcionalidade atenda aos requisitos estabelecidos. TDD também promove a criação de um conjunto de testes automatizados robustos que podem ser executados regularmente para verificar a integridade do código.

O TDD é frequentemente associado a práticas ágeis de desenvolvimento de software e é considerado uma abordagem eficaz para melhorar a qualidade do código e a manutenibilidade do software.