Teste Automatizados no Front-End: Benefícios em Testar Sua Aplicação

Erick Pereira da Silva
3 min readNov 19, 2017

--

Se você nunca escreveu um teste automatizado de unidade e/ou componente ou está começando agora, você já deve ter se perguntado: mas porque diacho eu tenho que testar componentes ou funções no front-end?Quando eu ainda não tinha um mindset tester eu também pensava dessa forma. Mas é ai que a gente se engana. Nesse post vou listar 4 benefícios de automatizar testes unitários e/ou componente em uma aplicação front-end:

1) Documentar o seu código

A medida que seu projeto cresce, ele vai ficando cada vez mais complexo (independe de quão bom seja seu código) torna-se cada vez mais difícil entender a responsabilidade de cada parte do código, mesmo se foi você mesmo quem o escreveu. O teste possibilitará você descrever de forma literal aquele trecho de código e como usá-lo. Aos poucos, deixará de usar comments em cima do código, pois os testes documentarão ele pra você.

2) Facilitar grandes mudanças de arquitetura

Imagina que você trabalhe em um projeto que usa 20 dependências externas como (react, redux, jest e etc) e faz 7 meses que você não atualiza nenhuma delas. Certo dia você decide fazer um “catadão” e atualizar todas elas e então percebe que seu site tem mais ou menos 30 views. Se você não tiver escrito nenhum teste você terá que testar todas as 30 views na unha, uma a uma, e ver se foi lançada alguma exceção no console. Isso demoraria horas. Com os testes automatizados de unidade e/ou componente, provavelmente em menos de 1 minutos você iria saber tudo o que foi quebrado após suas alterações na sua aplicação.

3) Te forçar a escrever códigos mais enxutos com funções bem definidas

Tenho certeza que você já viu uma função impossível de ser testada, vou dar um exemplo prático: a função chama-se montarCarro() e tudo é feito lá dentro, desde contratar a galera que vai monta-lo até a montagem em si, sem nenhuma outra função dentro. Pense na dificuldade em identificar todos os cenários de teste da montagem de um carro inteiro. Impossível! Então vai perceber que se você fizer um modulo para cada parte do carro, fica muito mais fácil de identificar os testes. Como mágica, inconscientemente, você vai começar a escrever pensando nos testes!

4) Confiança nas suas entregas

É muito frustrante subir algum bug em produção, pelo menos para mim que sou bem exigente comigo mesmo. Algumas vezes nós realmente deixamos passar algo, acontece. Porém, um caso muito comum é um bug aparecer numa feature diferente da que alteramos. Ou seja, nossa feature X pode gerar um bug na feature Y. Pior, nem tínhamos noção que a feature Y poderia ser afetada. Com os testes automatizados, conseguimos diminuir essa chance drasticamente, já que esse bug na feature Y seria pego nos testes.

Esses são alguns dos benefícios que os testes automatizados trazem ao projeto. Porém, sempre temos que levar em consideração o negócio, pois entregar com qualidade leva mais tempo e dependendo da situação temos que abrir mão dos testes pelo prazo muito curto. É tudo uma questão de analizar a necessidade do negócio e da sua aplicação. Não devemos também construir uma Ferrari para andar 500 metros, quando uma bicicleta nos leva muitos quilômetros a frente!

--

--