POR QUE OS TESTES EM FRONT-END IMPORTAM?

A primeira pergunta que um desenvolvedor pode se fazer é: por que testar?

 

A resposta básica é: para minimizar a chance de erros passarem por seus testes manuais, o que acaba gerando mais perda de tempo lá na frente. E agilidade é um atributo fundamental na programação. Outro ponto importante é que, quando criamos avaliações automatizadas, também estamos de certa forma documentando nosso código.

 

Quais são os tipos de testes?

 

Há majoritariamente três tipos sendo feitos no front-end. O E-2-E (end-to-end ou ponta a ponta), o unitário (o mais comum de todos) e o snapshot (a comparação de fotos):

 

Unitário: Se constitui geralmente em verificar as funções do código e, em alguns casos, como Vuejs, os componentes. Mesmo sendo um ótimo tipo de teste, ele possui seus problemas como dificultar um pouco mais a refatoração de código por criar uma situação onde ele também precisa ser alterado.

 

E-2-E: O e-2-e é necessário para garantir que o fluxo do programa está funcionando. Ele simula um navegador e repete as ações passadas, refazendo, assim, o fluxo e vendo se algo quebra. Uma desvantagem é a sua demora, pois precisa simular o navegador e aguardar um tempo entre as ações. Outra é que esse tipo de avaliação também pode dar falsos positivos. Um exemplo é: se alguma API não der a resposta esperada, isso pode mudar o resultado sendo que não seria culpa da sua aplicação.

 

Snapshot: Esta forma de verificação parte da comparação entre fotos (ou snapshots). A princípio, ele seria feito usando uma foto do visual do seu programa, mas, via de regra, o que se faz é usar frameworks como o Jest. Nesse caso, pega-se uma “foto” do código, ou seja, os valores do que estaria sendo exibido, e se compara com a snapshot em questão, lembrando que ela tem de ser gerada primeiro. Portanto, antes de rodá-lo pela primeira vez, é importante garantir que seu app está do jeito que você deseja.

 

Observação: É possível gerar novas “fotos” matrizes para o snapshot. No entanto, se houver erro nessa “imagem” e ele não for reparado, o teste dará falsos positivos e irá atrapalhar o desenvolvimento geral do aplicativo.

 

Quando testar?

 

Uma parte importante dos testes automatizados é quando os realizar. Para isso, muitas pessoas sugerem uma regra simples: se o tempo gasto gerando e mantendo o teste for maior do que testar manualmente (considerando que você pegaria os bugs quase todos nas versões manuais), não vale a pena testar. Caso contrário, eles são uma ótima forma de ajudar na documentação do código, de torná-lo mais familiar, de diminuir possíveis dores de cabeça com avaliações manuais e de ganhar tempo.

 

Referências:

YERBURGH, Edd. Testing Vue. js Applications. Manning Publications, 2018.