【发布时间】:2016-09-17 00:32:22
【问题描述】:
我有以下代码在我的项目中使用 axios 建立服务器连接:
axios.get('/someurl')
.then(function (response) {
console.log(response);
}.bind(this))
.catch(function (response) {
console.log(response);
});
我正在使用 Jest 作为测试框架,并且我成功地模拟了 axios,但是我对这个 then-Function 有问题:
module.exports = {
get: function(a)
console.log(a);
console.log(b);
return "abc";
}
}
但是,在运行测试时,我收到以下错误消息:
TypeError: _axios2.default.get(...).then 不是函数
我必须找到一种方法来告诉它存在并且是一个函数。我必须在 module.exports 中执行此操作。关于如何做到这一点的任何想法?
【问题讨论】:
-
Promise 有一个
then函数。你的模拟函数需要返回一个 Promise。 -
那么就不需要mock本身了吗?
-
对。只需从您的
get函数返回一个 Promise。 -
return new Promise(function(abc) { console.log("jlk"); }) 这样的东西将取代我的实际实现,对吗?
-
如果您希望结果始终成功,则只需
return Promise.resolve('abc')。
标签: javascript node.js jestjs axios