Introdução
Esta página foi traduzida por PageTurner AI (beta). Não é oficialmente endossada pelo projeto. Encontrou um erro? Reportar problema →
A Vue Testing Library estende a DOM Testing Library ao adicionar APIs para
trabalhar com componentes Vue. Ela é construída sobre o
@vue/test-utils, a biblioteca de testes
oficial para Vue.
Em resumo, a Vue Testing Library faz três coisas:
Reexporta utilitários e helpers de consulta da
DOM Testing Library.Oculta métodos do
@vue/test-utilsque conflitam com o Princípio Guia da Testing Library.Ajusta alguns métodos de ambas as fontes.
Início Rápido
Se estiver usando Vue2
- npm
- Yarn
npm install --save-dev @testing-library/vue@5
yarn add --dev @testing-library/vue@5
Se estiver usando Vue3
- npm
- Yarn
npm install --save-dev @testing-library/vue
yarn add --dev @testing-library/vue
Agora você pode usar todos os comandos getBy, getAllBy, queryBy e queryAllBy da DOM Testing Library. Veja aqui a lista completa de consultas.
Você também pode instalar o @testing-library/jest-dom para utilizar os matchers personalizados do Jest para o DOM.
O problema
Você quer escrever testes sustentáveis para seus componentes Vue. Como parte desse objetivo, seus testes devem evitar incluir detalhes de implementação dos seus componentes. É melhor focar em fazer seus testes fornecerem a confiança para a qual foram projetados.
A solução
A Vue Testing Library é uma solução extremamente leve para testar componentes Vue. Ela fornece funções utilitárias simples sobre o @vue/test-utils, incentivando práticas de teste mais eficazes.
Seu princípio guia primário é:
Portanto, em vez de lidar com instâncias de componentes Vue renderizados, seus testes trabalharão com nós reais do DOM.
Os utilitários desta biblioteca facilitam a consulta ao DOM da mesma forma que um usuário faria. Eles permitem encontrar elementos por texto de rótulo, identificar links e botões pelo seu texto, e verificar que sua aplicação é acessível.
Ela também expõe uma maneira recomendada de encontrar elementos via data-testid como uma "saída de emergência" para elementos onde conteúdo textual e rótulo não fazem sentido ou não são práticos.