Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Jasmine x Jest

Quais as vantagens e desvantagens da utilização do Jasmine e do Jest em aplicações Angular?

Em um cenário em que em um mesmo projeto possui um framework diferente (Angular e React) para cada parte do projeto, o ideal seria padronizar o framework de testes para todo o projeto ou é haver duas formas de testes uma para Angula e outra para React? Se fosse padronizar, qual a melhor?

1 resposta
solução!

Olá, Andressa! Tudo certo?

Jasmine e Jest são ótimas opções para os testes em front-end. Eu diria que o maior benefício de Jasmine, falando específicamente de Angular, é que o padrão. Você encontra um suporte melhor, uma integração melhor e documentação/comunidade.

Outros pontos são: o Jasmine roda em um navegador real e a migração do Jasmine para o Jest é mais fácil do que o contrário.

Enquanto isso, o Jest é um pouco mais popular, e segue esse papel de ser um framework mais flexível. Além disso, ele também é mais rápido.

Na maioria dos casos, acredito que essa análise de vantagens e desvantagens é até difícil por ambos serem implementáveis e utilizáveis de maneiras semelhantes e sem grandes complicações. Por isso, várias vezes, as equipes optam por usar Jasmine em projetos Angular justamente por ser o padrão.

Quanto ao caso de frameworks diferentes no mesmo projeto, talvez seja uma opinião mais particular, mas eu sou defensor de manter alguma consistência no uso de tecnologias no mesmo projeto. Se temos diferentes aplicações, com diferentes equipes, entendo e concordo com o uso de diferentes frameworks e frameworks de testes.

Mas em casos que temos um projeto, com algumas aplicações que trabalham juntas, e a mesma equipe, quanto mais diferente for a stack, mais lento pode ser o processo de adaptabilidade entre uma aplicação e outra. Por isso, eu acredito que o ideal é ter uma stack ou baseada em React, ou baseada em Angular, ou baseada em outro framework.

E continuo com essa filosofia para frameworks de testes. O melhor é ter um só para não esperar do Jasmine um comportamento visto no Jest, por exemplo.

Continuando nessa questão, qual a escolha certa para padronizar, acredito que depende da preferência da equipe, ou da pessoa. Eu, por exemplo, escolheria Jest porque acredito que tratando-se de React e Angular, a comunidade é mais ampla.

Espero ter ajudado!