StateOfJS survey results: which JS testing frameworks will rule 2019?
Uma rápida visão geral dos mais in-exigir estruturas de teste javascript que ocupariam o centro do ecossistema javascript e os desenvolvedores devem se familiarizar em 2019
TL;DR: neste artigo, nós olharíamos para as estruturas de teste javascript mais requisitadas e as reveríamos com base em insights do estado dos resultados javascript.
Generalmente, existem basicamente três tipos ou formas de uma aplicação javascript pode ser testada. A primeira maneira é testando funções individuais separadamente ou independentemente através de um tipo de método de caixa preta onde as entradas são fornecidas com uma saída já conhecida para garantir que os resultados esperados sejam produzidos, isto é chamado de Unit Testing. O processo de então testar todo o componente ou aplicação para ver se os resultados esperados são produzidos é chamado de Teste de integração. A terceira maneira é conhecida como Teste de Interface de Usuário, é usado basicamente para testar sua aplicação controlando o navegador sem muita ênfase no funcionamento interno para testar as expectativas.
O que é StateOfJS
State of JS é basicamente uma pesquisa anual de tudo JavaScript onde as opiniões dos desenvolvedores que fazem a pesquisa são gravadas e lindamente visualizadas para mostrar insights que significam o estado do JavaScript naquele ano.
Os pontos de dados cobrem frontend de frameworks de desenvolvimento web, bancos de dados, gerenciamento de estado, relações entre frameworks, recepção e facilidade de uso, linguagens que compilam para JavaScript, frameworks móveis, ferramentas de construção, ferramentas de teste de JavaScript e muito mais. É uma pesquisa JavaScript muito abrangente que foi iniciada em 2016 por Sacha Greif e alguns outros ajudantes e agora tem mais de 20.000 respostas de desenvolvedores na última edição.
Porquê StateOfJS?
Yes, State of JS é na verdade a primeira pesquisa de desenvolvedores somente em JavaScript que é universalmente respeitada no que diz respeito à comunidade JavaScript. Existem outras pesquisas muito populares, como a pesquisa com desenvolvedores stackoverflow com mais de 100.000 entrevistados e até mesmo o Relatório do Ecossistema do Estado do Desenvolvedor da Jetbrain com mais de 6.000 entrevistados, vamos no entanto focar no estado da pesquisa js hoje.
Deixe-nos ter uma rápida visão geral destes frameworks de teste na ordem em que foram visualizados no estado da pesquisa javascript 2018.
Tip: Ao trabalhar com componentes (React, ES6 etc) use Bit para facilmente compartilhá-los, organizá-los e reutilizá-los entre aplicativos – para construir mais rapidamente. Você também pode usá-lo para testar individualmente os componentes na nuvem, antes de usá-los. Experimente.
Jest
Jest, indiscutivelmente um dos mais populares testes de estrutura javascript com mais de 22.000 ⭐️ no github foi construído e é constantemente mantido pela equipe do Facebook. É um framework de testes javascript de configuração zero recomendado pela React e o mais fácil de usar também. Jest tem uma taxa de aceitação muito impressionante em 2018 pela comunidade javascript.
É muito performante, com uma interface de usuário sem ambigüidades e conveniente. Ele vem com espiões e zombadores e cria globos de teste por padrão. Ele também fornece testes de snapshot e vem com uma ferramenta de cobertura de código embutida. É incrivelmente rápido e uma das melhores opções para iniciantes que gostariam de testar seu código javascript. Há também uma tonelada de recursos disponíveis online sobre Jest.
Mocha
Mocha com mais de 16.000 ⭐️on github é o framework de testes javascript mais usado há anos. Ele é usado com afirmações de terceiros, ferramentas de zombaria e espionagem como chai ou enzima. A Mocha tem opções bem estabelecidas no ecossistema massivo com uma grande documentação. É muito flexível e aberto a muitas extensões.
Embora estejamos vendo um pequeno desvio de domínio de Mocha para Jest, mas Mocha ainda é a ferramenta de teste mais usada e a biblioteca e desenvolvedores de javascript mais dependentes ainda não estão deixando ir, principalmente por causa da riqueza de liberdade e flexibilidade que vem com o uso de Mocha. A comunidade Mocha é muito massiva e há toneladas de recursos para o uso e uso de casos.
Jasmine
Jasmine é universalmente conhecido como o framework de teste que é oficialmente recomendado pela Angular para os desenvolvedores usarem, o framework Jest foi construído com base no Jasmine. Com mais de 14.000 ⭐️on github Jasmine é um dos frameworks mais populares para testar o javascript, é também um dos mais antigos com mais recursos e suporte da comunidade. Desenvolvedores angulares achariam fácil de usar e integrar como a documentação oficial Angular também sugere o uso do Jasmine. É muito fácil de começar, esta é provavelmente uma das coisas que inspirou o Jest. Em 2018 de acordo com a pesquisa, vemos uma mudança no uso do Jasmine para Jest e também mais aplicações de reação sendo testadas pelo Jasmine em comparação com o Jasmine angular.
É muito importante notar que os testes para aplicações angulares podem ser facilmente executados com Jest e é praticamente tudo sobre preferência.
Karma
Karma com mais de 10.000 ⭐️on github é uma espécie de estrutura de teste javascript para casos de uso geral. Você pode executar testes no seu navegador ou em ambientes semelhantes aos do navegador como o jsdom. Há suporte para ferramentas de integração contínua como travis e jenkins, os testes podem ser executados em dispositivos reais ou em uma instância phantomJs sem cabeça. É framework agnostic então você pode descrever seus testes com Jasmine, Mocha ou escrever um adaptador simples para qualquer framework que você goste.
Tests também podem ser executados remotamente do seu terminal ou IDE ou usando serviços como BrowserStack.
AVA
AVA com mais de 15.000 ⭐️on github é atualmente o framework de testes javascript mais minimalista que roda testes em paralelo. AVA é um test runner para Node.js com uma API concisa, saída de erros detalhada, abraço de novas funcionalidades de linguagem e isolamento de processos que permitem escrever testes de forma mais eficaz.
Vem com suporte para testes de snapshot e typescript e executa testes em modo relógio tornando-o realmente rápido; ele também fornece um ambiente isolado para cada arquivo de teste. É fácil de começar e tem uma coleção de recursos disponíveis online.
Cypress
Com mais de 9.000 ⭐️on github, o Cypress é uma ferramenta de teste javascript muito rápida e confiável. Ele basicamente injeta testes em uma aplicação web, fornece uma documentação muito clara e extensa e está em constante competição com outra estrutura de testes TestCafe.
Também é fornecido com suporte para Mocha e tem uma maneira muito boa de registrar os resultados dos testes em um painel de controle e debugging fácil. É a estrutura de teste a ser procurada em 2019 com uma taxa de aceitação em crescimento maciço.
Puppeteer
Com mais de 43.000 ⭐️on github, Puppeteer construído pela equipe do Google é uma biblioteca de nós que fornece uma API de alto nível para controlar Chrome ou Chromium sobre o Protocolo DevTools. O Puppeteer roda sem cabeça por padrão, mas pode ser configurado para rodar Chrome ou Chromium.
É novo no cenário de testes mas já tem muitos desenvolvedores usando-o (obrigado google!) É também bastante rápido, já que é nativo, não suporta atualmente muitas extensões mas o futuro é realmente brilhante e promissor.
QUnit
Com mais de 3.700 ⭐️on github, QUnit é um framework de teste de unidades JavaScript que foi originalmente desenvolvido para testar jQuery, jQuery UI e jQuery Mobile, é um framework genérico para testar qualquer código JavaScript. Ele suporta ambientes do lado do cliente em navegadores web, e do lado do servidor.
QUnit é similar a outros frameworks de teste de unidade como JUnit, mas faz uso dos recursos que o JavaScript fornece e ajuda com o código de teste no navegador, como o suporte a assincronicidade e tratamento de exceções.
Chai
Com 6.000 ⭐️on github, Chai é uma biblioteca de asserção de desenvolvimento orientada ao comportamento e ao teste, semelhante à biblioteca de asserção de desenvolvimento orientada ao nó incorporada assert
. Torna os testes muito mais fáceis ao dar-lhe muitas asserções que você pode executar contra o seu código. Ela vem com suporte a qualquer outro framework de teste como Mocha.
TestCafe
TestCafe com mais de 5.900 ⭐️on github, é um framework de nó usado para testes de aplicações javascript de ponta a ponta. Ele vem com suporte a digitação e tem uma interface muito boa para registrar os resultados dos testes.
Roda em todos os ambientes populares, incluindo Windows, MacOS e Linux. Ele suporta desktop, móvel, remoto e navegadores em nuvem (UI ou headless). Também tem uma documentação muito elaborada e uma comunidade crescente.