Quando Escrever Testes de Unidade?💡
Ágatha
Posted on April 6, 2024
Escrever testes de unidade é como se preparar para uma prova: você estuda um tópico e faz um teste para ver se realmente aprendeu. Existem duas formas principais de fazer isso:
- Depois de Programar: Você cria uma parte do seu programa, como uma função que soma dois números. Depois de fazer isso funcionar, você escreve um teste que verifica se, quando você soma 2 e 2, o resultado é realmente 4. Você continua assim, criando mais partes do seu programa e escrevendo testes para cada uma.
- Antes de Programar (TDD): Esse é o método Test-Driven Development (Desenvolvimento Orientado por Testes). Aqui você faz ao contrário: escreve o teste para a função de soma antes mesmo de fazer a função. Claro, o teste vai falhar, porque a função ainda não existe. Depois, você cria a função de forma que faça o teste passar. Isso ajuda a manter o foco em fazer apenas o necessário para que a função cumpra sua tarefa.
Além de escrever testes antes ou depois de desenvolver, tem mais duas maneiras inteligentes de usar os testes de unidade:
- Quando Aparecer um Bug: Imagine que alguém te conta que encontrou um erro no seu programa. Uma ótima maneira de começar a resolver isso é escrevendo um teste que mostra esse erro acontecendo. Assim, você tem um teste que falha porque o programa não está fazendo o que deveria. Depois, você conserta o erro e, se o teste passar, você não só corrigiu o problema como também ganhou um novo teste para garantir que esse erro não volte a acontecer no futuro.
-
Durante a Depuração: Se você está tentando entender por que uma parte do seu programa não está funcionando, resistir à tentação de só jogar um monte de
console.log
para ver o que está acontecendo. Em vez disso, é melhorar escrever um teste que verifica o comportamento que você está tentando consertar. Isso te ajuda a ser mais sistemático na depuração e ainda te deixa com um teste útil no final.
E sobre quando não escrever testes de unidade?
- Não deixe para o final: Esperar até que todo o programa esteja pronto para começar a testar geralmente não é uma boa ideia. Isso porque você pode acabar fazendo os testes com pressa e de forma superficial, ou pior, pode acabar não fazendo os testes de jeito nenhum. Além disso, testar tudo de uma vez pode ser muito mais complicado e menos eficiente do que testar pedacinho por pedacinho à medida que você constrói o programa.
- Não divida a responsabilidade: É tentador pensar que alguém pode fazer o programa e outra pessoa pode testá-lo. Mas na verdade, é super importante que quem escreveu um pedaço do código também escreva os testes para esse código. Isso ajuda a garantir que os testes estão cobrindo o que realmente importa e que o desenvolvedor entende profundamente como seu código deve funcionar.
Por fim, usar testes de unidade ao longo do desenvolvimento do seu programa não só ajuda a encontrar e corrigir problemas mais rápido, mas também te dá a segurança de que as mudanças que você faz não quebram coisas que já estavam funcionando.
Benefícios 🚀
- Encontrar Bugs Cedo: A ideia é pegar os problemas enquanto você ainda está desenvolvendo, antes de tudo ficar mais complicado (e caro) para consertar. Se você tem bons testes, é menos provável que erros chatos surpreendam você ou seus usuários lá na frente.
- Evitar Regressões: Uma "regressão" é quando você muda alguma coisa no código para melhorar ou adicionar algo novo, mas acaba estragando outra coisa sem querer. Com testes de unidade, se você fizer uma mudança que cause uma regressão, provavelmente vai descobrir rápido porque um dos seus testes vai falhar.
- Documentar e Especificar: Além de te ajudar a não quebrar coisas, os testes também contam uma história sobre como seu código deve se comportar. Se alguém quiser entender melhor uma parte do seu programa, pode começar olhando os testes para ver o que esperar dele. É quase como se os testes fossem um manual de instruções que mostra como usar e o que esperar do seu código.
Mas e no mundo real? Empresas gigantes como Google e Facebook levam os testes de unidade super a sério. No Google, por exemplo, eles não deixam nem o código entrar sem ter testes junto. Eles acham tão importante que têm até ferramentas que te lembram de escrever os testes. No Facebook, os engenheiros também são responsáveis por testar seus próprios códigos e por garantir que novas mudanças não quebrem nada que já estava funcionando.
Então, os testes de unidade não são só uma coisa teórica legal para "projetos escolares". Eles são usados o tempo todo, em grandes projetos reais, para manter tudo funcionando suavemente e para evitar surpresas desagradáveis.
A maior parte desse conteúdo veio do livro "Engenharia de Software Moderna", escrito por Marco Tulio Valente. Esse livro é um tesouro cheio de dicas sobre como criar testes do jeito certo, usando o que tem de mais novo e eficiente no mundo da programação. Entretanto, a única diferença, é que o livro é em Java e aqui eu adaptei para utilizar Javascript.
Posted on April 6, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.