Por que você deveria criar testes?

Tadeu Barbosa - Jan 12 '22 - - Dev Community

Se você não testa os softwares que cria por achar que isso atrasa o desenvolvimento, ou ainda: porque não gosta, ou até porque mesmo desconhece... esse post é para você! Se esse não é o seu caso, fique a vontade para compartilhar suas experiências nos comentários.


Venho programando a um tempo e fazia parte de um dos grupos citados acima. Eu desconhecia os testes e por isso não conseguia enxergar o valor de se testar o código. Claro, muitas vezes já tinha ouvido falar sobre, mas nada além disso.

Um tempo atrás me vi na seguinte situação: Um de meus clientes já possuía um sistema em produção. Este sistema funcionava de maneira diferente para cada tipo cliente, em outras palavras:

  • O cliente A utiliza os módulos 1, 2 e 3.
  • O cliente B utiliza os módulos 2, 3 e 4.

Algumas funcionalidades estão em funcionamento em um e em outro não. Bem, eu fui convidado para dar continuidade no sistema e dá-lhe commit! Começamos a desenvolver e subir atualizações, corrigir bugs, mais atualizações, quebra alguma coisa, correção, atualização... num ciclo eterno.

Bugs everywhere

Programar para mim é uma paixão, e se você está lendo isso, provavelmente esse também é o seu caso. Portanto criar coisas novas, desenvolver uma ideia, tirar as coisas do papel e transformar em código é algo mágico! Por outro lado corrigir bugs, voltar a mexer em código que já havia sido finalizado é um pesadelo. Imagine criar uma nova funcionalidade num dia, daqui a dois dias ela está dando problema, você então corrige e daqui a uma semana volta a dar problema de novo.

É ai que se encaixam os testes de software! :D

Disse uma vez, em uma publicação, que muitas vezes nos vemos frustados tentando desenvolver coisas "do nosso jeito", quebramos a cabeça tentando reinventar a roda sendo que alguém já passou por algo parecido muitas e muitas vezes e já desenvolveu com base em estudo atrás de estudo, uma forma de resolver tal problema. Esse é o caso dos testes!

Quando comecei a pensar sobre o assunto fiz um curso do @cviniciussdias na Alura. Aliás, se quiserem 10% de desconto, vocês conseguem através do meu link: promocao/tadeubstar. Foi aí que comecei a entender o valor do teste.

Diversas pessoas já passaram pela mesma coisa que passamos todos os dias e viram que testar o código é algo importante. Logo: por que não testar o nosso código?


Vamos imaginar o seguinte cenário: pediram para que você desenvolvesse uma função em javascript que levasse em conta os seguintes requisitos:

  • A função deve calcular o desconto para um usuário;
  • Ela irá receber um usuário e um valor qualquer em float;
  • Se o usuário for de nivel 1, ele não deve receber descontos;
  • Se o usuário for de nível 2, deve receber 10% de desconto;
  • Já se ele for de nível 3, deve receber 20% de desconto.

Bem, poderíamos fazer o seguinte:

function calculaDescontoParaUsuario(usuario, valor) {
  if (usuario.nivel === 2) {
    return valor * 0.10;
  }
  if (usuario.nivel === 3) {
    return valor * 0.20;
  }
  return valor;
}
Enter fullscreen mode Exit fullscreen mode

E para validar que tudo funciona, poderíamos criar um arquivo chamado: testa-calculo-de-desconto-do-usuario.js.

const usuario = {
  nivel: 0
};
const valor = 100;

// valida usuario de nível 1
usuario.nivel = 1;
if (calculaDescontoParaUsuario(usuario, valor) === 100) {
  console.log('- Tudo certo com o nível 1 =D ')
} else {
  console.log('- Ops! O valor está incorreto no nível 1 =/')
}

// valida usuario de nível 2
usuario.nivel = 2;
if (calculaDescontoParaUsuario(usuario, valor) === 90) {
  console.log('- Tudo certo com o nível 2 =D ')
} else {
  console.log('- Ops! O valor está incorreto no nível 2 =/')
}

// valida usuario de nível 3
usuario.nivel = 3;
if (calculaDescontoParaUsuario(usuario, valor) === 80) {
  console.log('- Tudo certo com o nível 3 =D ')
} else {
  console.log('- Ops! O valor está incorreto no nível 3 =/')
}
Enter fullscreen mode Exit fullscreen mode

E dessa forma garantimos que todas as vezes que rodarmos o segundo script, nossa função irá retornar os valores corretos. Bem, isso foi só uma demostração, existem centenas de ferramentas de software e no próximo post iremos falar sobre elas!

Se você gostou deixe o seu like, ajuda muito! =D
Até o próximo post!

. . . . . . . . . . . . . . . . . . . . . . . . .
Terabox Video Player