У меня есть laravel проект. Я пытаюсь протестировать компонент vue, и он показывает ошибки: это мой тест: test.spe c. js
import { mount } from '@vue/test-utils';
import expect from 'expect';
import moxios from 'moxios';
import Post from '../../resources/js/components/Component.vue';
describe('Component',()=>{
let wrapper;
beforeEach(() => {
moxios.install();
wrapper = mount(Component, {
propsData: {
data: {
id: 1,
name: 'Test'
lastname: 'Test
}
}
});
});
afterEach(() => {
moxios.uninstall();
});
it.only('updates the profile user after being liked', (done) => {
click('button.like');
moxios.wait(() => {
let request = moxios.requests.mostRecent()
request.respondWith({
status: 200
}).then(function () {
seeText('1 likes')
done()
})
});
});
let click = selector => {
wrapper.find(selector).trigger('click');
};
});
Это компонент: Компонент. vue
<template>
<div class="profile">
<div>
{{ name }}
</div>
<div>
{{ lastname}}
</div>
<button class="like" @click="like">Like</button>
</div>
</template>
<script>
export default {
props:['data'],
data(){
return {
id:this.data.id,
name: this.data.name,
lastname :this.data.lastname
.......
};
},
methods:{
like(){
axios.post(`/user/${this.id}/likes`);
......
}
}
}
</script>
И при тестировании он показывает: ax ios не определен, но определяется глобально в ресурсах / js / bootstrap. js
window.axios = require('axios');
и он работает в браузере!
Затем я добавил это в Компонент. vue
<script>
import axios from 'axios';
.....
</script>
И теперь мои тесты работают нормально. но если удалить его, он снова не сможет. Я просто хотел знать, почему это происходит, я не уверен, нужно ли мне добавлять import ax ios из 'ax ios'; к каждому компоненту, который использует ax ios только для тестирования