我在Node.js相对较新。现在,我用Mocha和Chai编写单元测试,结果发现自己在测试作为异步函数的回调编写的匿名函数中的代码时陷入了困境。
我重新创建了一些示例代码来解释我的情况。具有这些异步功能:
asyncAddition = function (a, b, callback) {
setTimeout(() => {
callback(a + b);
}, 3000);
}
asyncSubstraction = function (a, b, callback){
setTimeout(() => {
callback(a - b);
}, 3000);
}
[我想在不将任何回调作为参数的类方法calculate
中使用它们,而只是两个操作数a
和b
以及具有计算类型的字符串,这是异步进行的,将结果放入result
成员中:
class Example{
constructor(){
this.result = null;
}
calculate(a, b, action){
if (action == "add") {
asyncAddition(a, b, (result) =>{
this.result = result;
console.log("Addition result is: " + result);
});
}
else if (action == "substract") {
asyncSubstraction(a, b, (result) =>{
this.result = result;
console.log("Substraction result is: " + result);
});
}
}
}
由于result
中的值是在回调代码中设置的,我如何编写对calculate
方法的适当测试,该方法根据给定的参数检查result
的值?
我在Node.js相对较新。现在,我正在与Mocha和Chai一起编写单元测试,发现自己无法测试匿名函数中的代码,这些匿名函数被编写为...
您可以使用Chai断言作为承诺。该软件包为Chai提供了一种流利的语言,用于断言有关诺言的事实。