Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js 如何开玩笑地模仿VueAxios_Vue.js_Testing_Jestjs_Axios - Fatal编程技术网

Vue.js 如何开玩笑地模仿VueAxios

Vue.js 如何开玩笑地模仿VueAxios,vue.js,testing,jestjs,axios,Vue.js,Testing,Jestjs,Axios,我想测试我的Api函数,这些函数位于vue组件之外的单独文件中。在这个方法中,我通过Vue.axios调用api,但我找不到像本文中那样模拟和测试它的方法: 示例方法: cancelAuction: function (auction_id) { if (validateApiInt(auction_id)) { return Vue.axios.delete(`/auctions/${auction_id}`); } return {}; }, 用法

我想测试我的Api函数,这些函数位于vue组件之外的单独文件中。在这个方法中,我通过Vue.axios调用api,但我找不到像本文中那样模拟和测试它的方法:

示例方法:

cancelAuction: function (auction_id) {
    if (validateApiInt(auction_id)) {
      return Vue.axios.delete(`/auctions/${auction_id}`);
    }
    return {};
  },
用法示例:

const response = await AuctionApi.cancelAuction(id);

好吧,这很明显。我不得不像下面这样嘲笑整个Vue:

jest.mock('vue', () => ({
  axios: {
    get: jest.fn()
  },
}));

好吧,这很明显。我不得不像下面这样嘲笑整个Vue:

jest.mock('vue', () => ({
  axios: {
    get: jest.fn()
  },
}));

开始学习Jest+@vue/test-utils。下面是一个简单的例子,供那些想模仿“vue axios”的人参考


开始学习Jest+@vue/test-utils。下面是一个简单的例子,供那些想模仿“vue axios”的人参考

    // test/unit/example.spec.js

import { mount } from '@vue/test-utils';
import HelloWorld from '@/components/HelloWorld.vue';
import axios from 'axios';

jest.mock('axios', () => ({
  get: () =>
    Promise.resolve({
      data: {
        results: [{ email: 'mockAxios@email.com' }],
      },
    }),
}));

describe('HelloWorld.vue', () => {
  it('click and fetch data...', async (done) => {
    const wrapper = mount(HelloWorld, {
      mocks: {
        axios,
      },
    });

    await wrapper.find('button').trigger('click');

    wrapper.vm.$nextTick(() => {
      expect(wrapper.find('h1').text()).toContain('@');
      done();
    });
  });
});