DEV Community

Rogério Caetano
Rogério Caetano

Posted on • Updated on

Meu primeiro teste com Typescript e Mocha/Chai

Para quem desenvolve em NodeJs, VueJs, React ou Javascript puro sabe que o JS não é uma linguagem tipada, o Typescript veio para dar uma solução, aproximando o JS de outras linguagens como o JAVA. Ele faz uma compilação do javascript, podendo definir o tipo de uma variável, objeto, interface etc. Aumentando assim a integridade das informações no seu código.

Um exemplo básico de um código em TypeScript seria assim:

Exemplo simples em Typescript

Se você inserir uma array, integer, float ou outro tipo de variável que não seja do tipo string, o Typescript retorna um erro. Isso facilita na hora que estamos desenvolvendo alguma aplicação, onde se tem uma troca de informações e assegura que você só vai receber o que é necessário nos métodos do seu código. Um exemplo seria o caso de você criar um usuário e enviar somente o que é necessário e no tipo certo, você poderia criar uma interface no Typescript assim:

Exemplo de criação de uma interface em Typescript

E o TDD nisso aí?

Agora, uma forma de garantir que a nossa aplicação não apresente problemas ao se evoluir e inserção de novas funcionalidades, seria utilizar a metodologia TDD <Test Driven Development>, no português direto, Desenvolvimento Direciona a Teste, onde antes de se desenvolver os métodos e depois cria-se os testes, a lógica ai se inverte.

Qual a vantagem de se priorizar os testes em relação ao desenvolvimento em si?

  • Segurança na correção de bugs e implementação de novas funcionalidades,
  • Código limpo e bem escrito,
  • Produtividade, pois se foca no que é essencial na hora de desenvolver e evita refatorações para correção de erros, evitando assim o retrabalho,
  • Objetividade na hora do desenvolvimento do código, pois já se tem exatamente o que se precisa entregar.

E como eu aplico isso junto com o TypeScript?

Existem diversas bibliotecas em javascript para se criar testes automatizados, tanto para Frontend como para o Backend, vou falar um pouco de duas aqui, Mocha e Chai, e como usar em um código utilizando o Typescript. O *Mocha é um framework em javascript que executa em NodeJs para testes, já o Chai é uma biblioteca utilizada pelo Mocha para as assertivas dos testes. E como seria um teste feito com o Mocha e Chai?

Vamos supor que, você irá criar um método que deve retornar a soma de dois inteiros, o teste seria da seguinte forma:

Exemplo de teste no Mocha

Esse caso retornaria uma mensagem de erro, parecida com a imagem abaixo:
Teste falho

O motivo é que a variável que passamos está retornando vazia, pois não tem nenhum método definido/implementado. Criando a função para o nosso teste, seria algo assim:
Teste com função definida

E o retorno do teste, seria algo assim:
Retorno do teste com sucesso

E o Typescript nisso?

Aliar o Typescript com os testes automatizados, aumenta ainda mais a integridade e segurança dos dados, pois no caso do Typescript, ele só irá trabalhar com as informações que foram definidas previamente. Ficando o seu código limpo, seguro e muito mais fácil para se manter.

Criei um repositório com um exemplo básico:
Exemplo TS, Mocha/Chai, qualquer dúvida entre em contato, pois também estou aprendendo e podemos nos ajudar.

Abraços e espero que gostem desse meu primeiro artigo!

Top comments (0)