首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >艾灸在使用window.axios时工作不正常

艾灸在使用window.axios时工作不正常
EN

Stack Overflow用户
提问于 2020-04-01 21:51:17
回答 1查看 245关注 0票数 0

我有个拉拉项目。我正在尝试测试一个vue组件,它显示了错误:这是我的测试: test.spec.js

代码语言:javascript
复制
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

代码语言:javascript
复制
<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>

测试表明: axios没有定义,但在资源/js/bootstrap.js中是全局定义的。

代码语言:javascript
复制
window.axios = require('axios');

它在浏览器上工作!

然后我在Component.vue中添加了这个

代码语言:javascript
复制
<script>
import axios from 'axios';
.....
</script>

现在我的测试效果很好。但是如果移除它,它就会再次失败。我只是想知道为什么会发生这种情况,我不确定是否必须将导入axios从' axios ';添加到每个只为测试使用axios的组件中。

EN

回答 1

Stack Overflow用户

发布于 2020-04-21 13:16:25

在您的setup.js中添加这样的axios:

代码语言:javascript
复制
require('jsdom-global')();

global.axios = require('axios');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60980920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档