gpt4 book ai didi

javascript - 在 Mocha 中使用请求调用测试函数

转载 作者:太空宇宙 更新时间:2023-11-03 22:36:25 25 4
gpt4 key购买 nike

我对 Node.js 和 Mocha 非常陌生。我想测试以下功能:

querybackend = function(url,queryParams) {
var backendData ={};
request({url:url, qs:queryParams}, function(err, response, body) {
if(err) { console.log(err); return; }
var data = JSON.parse(body);
var length = data.length;
var tmp = data[0].DataPoints[0].length;
var in_sum =Array.apply(null, new Array(tmp)).map(Number.prototype.valueOf,0);
var timestamp = [];
var index1;
var index2;
for(index1=0;index1 < length;index1++) {
var length2=data[index1].DataPoints.length;
for(index2=0;index2<length2;index2++) {
in_sum[index2]= in_sum[index2] + data[index1].DataPoints[index2][1];
timestamp[index2] = data[index1].DataPoints[index2][0];
}
}
backendData.count = in_sum;
backendData.timestamp = timestamp;
deferred.resolve(backendData);
});
return deferred.promise;
};

测试此功能的正确方法是什么?该函数到达休息端点,获取 JSON,解析它并返回一个对象。

这是我得到的示例 JSON:

[
{
"Name": "name1",
"DataPoints": [
[
1410627915,
242221
]
]
},
{
"Name": "name2",
"DataPoints": [
[
1410627913,
238157
]
]
},
{
"Name": "name3",
"DataPoints": [
[
1410627922,
215045
]
]
}
]

我应该模拟该请求吗?我如何在 Mocha 中模拟它?

最佳答案

如果你想用 mocha 创建模拟或 stub ,你需要使用一些模块。 Sinon.js ( http://sinonjs.org/ ) 是一个很棒的,非常容易使用并且有很好的文档。

我认为您应该模拟请求函数来调用回调函数以及您的休息端点应该发送给您的答案。

然后,您可以测试您的函数应该完成的所有操作是否都已正确完成。顺便说一句,如果你想测试一个函数是否被调用,你可以使用 sinon 创建一个对该函数的 spy 。

关于javascript - 在 Mocha 中使用请求调用测试函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27667547/

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