Por que o Modo Navegador
Motivação
Desenvolvemos o recurso de modo de navegador do Vitest para aprimorar os fluxos de trabalho de teste e obter resultados mais precisos e confiáveis. Essa adição experimental à nossa API de teste permite que desenvolvedores executem testes em um ambiente de navegador nativo. Nesta seção, exploraremos as motivações por trás deste recurso e seus benefícios para o processo de teste.
Diferentes Abordagens de Teste
Existem diversas maneiras de testar código JavaScript. Alguns frameworks de teste simulam ambientes de navegador no Node.js, enquanto outros executam testes em navegadores reais. Nesse contexto, jsdom é um exemplo de implementação de especificação que simula um ambiente de navegador quando usado com um executor de testes como Jest ou Vitest. Por outro lado, ferramentas como WebdriverIO ou Cypress permitem que desenvolvedores testem suas aplicações em um navegador real, e o Playwright fornece um motor de navegador para essa finalidade.
A Limitação da Simulação
Testar programas JavaScript em ambientes simulados, como jsdom ou happy-dom, simplificou a configuração de testes e ofereceu uma API fácil de usar, tornando-os adequados para muitos projetos e aumentando a confiança nos resultados dos testes. No entanto, é crucial ter em mente que essas ferramentas apenas simulam um ambiente de navegador e não um navegador real. Isso pode resultar em discrepâncias entre o ambiente simulado e o ambiente real, levando a possíveis falsos positivos ou falsos negativos nos resultados dos testes.
Para alcançar o mais alto nível de confiança em nossos testes, é fundamental testar em um ambiente de navegador real. É por isso que desenvolvemos o recurso de modo de navegador no Vitest, permitindo que desenvolvedores executem testes nativamente em um navegador e obtenham resultados mais precisos e confiáveis. Com testes em nível de navegador, os desenvolvedores podem ter mais certeza de que sua aplicação funcionará conforme o esperado em um cenário do mundo real.
Desvantagens
Ao usar o Vitest em modo navegador, é importante considerar as seguintes desvantagens:
Estágio Inicial de Desenvolvimento
O recurso de modo de navegador do Vitest ainda está em fase inicial de desenvolvimento. Portanto, pode não estar totalmente otimizado e pode apresentar bugs ou problemas ainda não resolvidos. Recomenda-se que os usuários complementem sua experiência com o Vitest em modo navegador utilizando um executor de testes independente, como WebdriverIO, Cypress ou Playwright.
Inicialização Mais Demorada
O modo navegador do Vitest requer a configuração do provedor e do navegador durante o processo de inicialização, o que pode levar algum tempo. Isso pode resultar em tempos de inicialização mais longos em comparação com outros padrões de teste.