DEV Community

Cover image for Por que você deveria criar testes?
Tadeu Barbosa
Tadeu Barbosa

Posted on

Por que você deveria criar testes?

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!

Discussion (0)