Когда я пытаюсь протестировать один из своих компонентов с помощью nuxt и jest, я получаю следующую ошибку:
Cannot read property '$loading' of undefined
Это вызвано следующей строкой кода в моем компоненте
this.$nuxt.$loading.start()
Как предотвратить появление этой ошибки при запуске теста на моем компоненте?
Тестовый файл выглядит так:
import { mount } from '@vue/test-utils'
import Converter from '@/components/Converter.vue'
describe('Converter', () => {
test('is a Vue instance', () => {
const wrapper = mount(Converter)
expect(wrapper.isVueInstance()).toBeTruthy()
})
})
Jest монтирует ваш компонент без дополнительных свойств экземпляра Nuxt. вам нужно издеваться над этим. Вы можете сделать это локально, при монтировании компонента, или вы можете создать глобальный макет, если вы его часто используете (но я так не думаю). Насмешки хорошо описаны в документации vue-test-utils.





Я нашел решение. Решение состоит в том, чтобы издеваться над nuxt следующим образом:
const wrapper = mount(Converter, {
mocks: {
$nuxt: {
$loading: {
start: () => {}
}
}
}
})
ты мог бы просто издеваться над этим