与Sinon一起在Vuex商店中模拟Axios的最佳实践

时间:2018-07-04 15:22:23

标签: unit-testing sinon vuex

我想对Vuex商店内的动作进行单元测试。我遇到的障碍是在我的动作中嘲笑我的axios请求。我正在使用Mocha / Chai / Sinon堆栈进行单元测试。

我的Vuex商店的摘要:

import Vue from 'vue';
import axios from 'axios';


// .... state, getters, mutations etc ....

async viewOne(context, metadataId) {
  if (typeof metadataId !== 'number') {
    throw Error('viewOne expects a numeric ID');
  }

  const url = 'mysupersecreturl';
  const timeout = 30000;
  const response = await axios.get(url, {
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    },
    mode: 'cors',
    responseType: 'JSON',
    timeout: timeout
  });

  switch (response.status) {
    case 200: {
      const metadata = response.data;
      return metadata;
    }

    default: {
      throw Error('Error ' + response.status + ': ' + response.statusText);
    }
  }
},

我知道如何对Vuex进行单元测试,针对吸气剂和突变进行了测试,但是卡住的是如何模拟在Vuex中使用的axios库。 任何建议,不胜感激,在此先感谢!

0 个答案:

没有答案