DEV Community

Cover image for Princípios FIRST e Test Smells 🚀
Ágatha
Ágatha

Posted on • Updated on

Princípios FIRST e Test Smells 🚀

Quando se fala em escrever testes de unidade de boa qualidade, há alguns princípios básicos, agrupados na sigla FIRST, que podem ajudar bastante.

Fast ⚡

Os testes de unidade devem sempre ser rápidos. A ideia é que você consiga rodá-los o tempo todo, sem ficar esperando. Se você precisa de um café enquanto seus testes rodam, provavelmente eles não são rápidos o suficiente.

Independent 🧍‍♂️

Cada teste de unidade deve ser capaz de se virar sozinho. Não importa a ordem que você decide rodá-los; eles não devem depender uns dos outros.

Repeatable 🔁

Se você rodar o mesmo teste várias vezes, o resultado deveria ser sempre o mesmo: ou o teste sempre passa, ou sempre falha. Testes que às vezes passam e às vezes falham sem motivo aparente são chamados de "flaky" ou erráticos.

Self-checking ✅

Uma vez finalizada a execução dos testes, o resultado deve ser auto-explicativo (passou/falhou). Desta forma, o resultado pode ser ligeiramente verificado e interpretado.

Timely 🕰️

É uma boa ideia escrever os testes de unidade o quanto antes no seu processo de desenvolvimento. Muita gente até prefere escrever os testes antes do código que eles vão testar, isso ajuda a garantir que o seu código vai fazer exatamente o que você espera desde o começo.


Test Smells 🐟👃

Alguns sinais no seu código de teste podem indicar que algo pode melhorar. Esses sinais são chamados de "Test Smells":

Teste Obscuro 🌫️🤔

No código, um "Teste Obscuro" é assim: complicado, longo e difícil de entender. Testes devem ser simples e diretos, para que qualquer pessoa possa entender o que está sendo testado e por quê. É importante ter uma lógica clara e de fácil entendimento.

Teste com Lógica Condicional ➰❓

Um teste com muitos "se" e "senão" torna difícil de entender exatamente o que está sendo testado e em que condições. O ideal é que os testes de unidades sejam lineares, lógica condicional em testes prejudica o entendimento.

Duplicação de Código em Testes 📄🚫

Se você tem código repetido em vários testes, talvez haja uma maneira mais eficiente de organizar isso.

Test Smells são como um sinal de que talvez você possa simplificar ou organizar melhor seus testes. Não é que você nunca possa ter um "se" num teste ou um teste um pouco mais longo, mas é um lembrete para parar e pensar: "Tem um jeito mais simples de fazer isso?”


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.


Top comments (0)