Javascript 使用window.axios时,moxios无法正常工作
我有一个拉威尔项目。我正在尝试测试vue组件,但它显示错误: 这是我的测试:test.spec.jsJavascript 使用window.axios时,moxios无法正常工作,javascript,laravel,vue.js,axios,moxios,Javascript,Laravel,Vue.js,Axios,Moxios,我有一个拉威尔项目。我正在尝试测试vue组件,但它显示错误: 这是我的测试:test.spec.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',()=>{
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');
};
});
这是组件:component.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>
<script>
import axios from 'axios';
.....
</script>
它可以在浏览器上工作
然后我在Component.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>
<script>
import axios from 'axios';
.....
</script>
从“axios”导入axios;
.....
现在我的测试很好。但如果一个服务器删除它,它就会再次失败。我只是想知道为什么会发生这种情况,我不确定是否必须从“axios”添加导入axios在setup.js中将axios添加到每个仅用于测试的组件中。添加axios如下:
require('jsdom-global')();
global.axios = require('axios');