gpt4 book ai didi

javascript - 如何使用 mocha 和 rewire 模拟 Node.js 单元测试中的 Q 方法?

转载 作者:行者123 更新时间:2023-12-03 10:32:04 25 4
gpt4 key购买 nike

在为 Node.js 编写单元测试时,我遇到了这个问题

我的原始文件代码是

var Q=require('q')
.
.

.
return Q.all(promises).then(function(data) {
_.each(data, function(data) {
checking.push({
code: data.message
});
});
return {
err: errors
};
});

我的重新接线测试代码:

var testMock={
all:function(){

return {};
}
}
testFile.__set__("Q", testMock);

然后它给出了未定义的“then”...

那么如何解决???

最佳答案

你不 mock Q。Q已经可以返回你想要的东西了。首先,Q.all 返回一个 Promise 数组,因此要小心 Promise 数组包含相同结构的值。

在您的测试中,改为调用您的函数,并将 Promise 变量设置为

Q.resolve(data)

你的数据在哪里[promise1,promise2]

此外,您还需要一个库来测试诸如 Chai as promised 之类的 promise 。

也许您想 promise 一个处理数据的循环,它更像是这样:

Q.all(data.forEach(function(oneData) {
checking.push({
code: oneData.message
});
}));

关于javascript - 如何使用 mocha 和 rewire 模拟 Node.js 单元测试中的 Q 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29164677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com