You’re browsing the documentation for Vue Test Utils for Vue v2.x and earlier.
To read docs for Vue Test Utils for Vue 3, click here.
Começar agora
O que é o Vue Test Utils?
A Vue Test Utils (VTU) é um conjunto de funções utilitárias com o fim de simplificar os testes de componentes de Vue.js. Ele fornece alguns métodos para montar e interagir com componentes de Vue.js em um modo isolado.
Vamos ver um exemplo:
// Importa o método `mount()` do Vue Test Utils
import { mount } from '@vue/test-utils'
// O componente para testar
const MessageComponent = {
template: '<p>{{ msg }}</p>',
props: ['msg']
}
test('displays message', () => {
// mount() retorna um componente de Vue envolvido com qual podemos interagir
const wrapper = mount(MessageComponent, {
propsData: {
msg: 'Hello world'
}
})
// Afirma o texto renderizado do componente
expect(wrapper.text()).toContain('Hello world')
})
Os componentes montados são retornados dentro de um Wrapper (envolvedor), o qual expõe métodos para consulta e interação com o componente sob teste.
Simulando a Interação do Usuário
Vamos imaginar um componente contador que incrementa quando o usuário clica no botão:
const Counter = {
template: `
<div>
<button @click="count++">Add up</button>
<p>Total clicks: {{ count }}</p>
</div>
`,
data() {
return { count: 0 }
}
}
Para simular o comportamento, nós precisamos primeiro localizar o botão com o wrapper.find()
, o qual retorna um envolvedor para o elemento button
. Nós podemos então simular o clique ao chamar .trigger()
no envolvedor do botão:
test('increments counter value on click', async () => {
const wrapper = mount(Counter)
const button = wrapper.find('button')
const text = wrapper.find('p')
expect(text.text()).toContain('Total clicks: 0')
await button.trigger('click')
expect(text.text()).toContain('Total clicks: 1')
})
Repare como o teste deve ser async
e que o trigger
precisa ser esperado. Consulte o guia Testando Comportamento Assíncronos para entender porquê isto é necessário e outras coisas a considerar quando estiver testando cenários assíncronos.
O que se segue
Consulte as nossas dicas comuns para quando estiver escrevendo testes.
Por outro lado, você pode explorar a API completa.