gpt4 book ai didi

javascript - 如何使用 Promise 为函数编写单元测试

转载 作者:行者123 更新时间:2023-12-02 23:39:28 25 4
gpt4 key购买 nike

我是 Node.JS 和 Mocha 的初学者,我的任务是为一个小组项目编写单元测试。我的问题是我什至不知道从哪里开始,因为返回值是一个 promise 。观看了很多指南,我学会了如何检查常见函数的返回值,但这对我提供现实世界的示例没有帮助。如果任何经验丰富的开发人员可以帮助我提供特定于我列出的功能的指南和代码示例,我可以破解并理解它并也适用于其他功能。以下是从 CSV 文件获取统计信息的代码示例

function getStatistics() {
return new Promise((resolve, reject)=>{
try {
let readStatistics = [];
const statisticsReadStream = fs.createReadStream(statisticsFileName);
csv.fromStream(statisticsReadStream, {headers: true})
.transform(function (data) {
data.avgDuration = parseFloat(data.avgDuration);
data.avgPassed = parseFloat(data.avgPassed);
data.avgReachedPoints = parseFloat(data.avgReachedPoints);
data.minReachedPoints = parseInt(data.minReachedPoints);
data.maxReachedPoints = parseInt(data.maxReachedPoints);
return data;
})
.on("data", function (data) {
readStatistics.push(data);
})
.on("end", function () {
resolve(readStatistics);
statisticsReadStream.close();
});

}catch(err){
reject();
}
});

}

最佳答案

在 mocha 中,您可以从测试函数返回 Promise 以指示测试(it)已完成。

describe('My Test', function () {
it('should do something cool', function () {
return getStatistics().then(readStatistics => {
// Assert whatever you want here
});
});
});

getStatistics 函数抛出的任何错误或任何断言错误都将导致测试失败。

如果您专门查看某些内容是否引发错误,您也可以在测试中捕获错误 (reject())。

describe('My Test', function () {
it('should do something cool', function () {
return getStatistics().catch(error => {
// Assert whatever you want here about the error
});
});
});

https://mochajs.org/#asynchronous-code

关于javascript - 如何使用 Promise 为函数编写单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56140220/

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