如何正确测试Node.js中包含多个异步回调的方法?

问题描述 投票:-1回答:1

我在Node.js相对较新。现在,我用MochaChai编写单元测试,结果发现自己在测试作为异步函数的回调编写的匿名函数中的代码时陷入了困境。

我重新创建了一些示例代码来解释我的情况。具有这些异步功能:

asyncAddition = function (a, b, callback) {
    setTimeout(() => {
        callback(a + b);
    }, 3000);
}

asyncSubstraction = function (a, b, callback){
    setTimeout(() => {
        callback(a - b);
    }, 3000);
}

[我想在不将任何回调作为参数的类方法calculate中使用它们,而只是两个操作数ab以及具有计算类型的字符串,这是异步进行的,将结果放入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一起编写单元测试,发现自己无法测试匿名函数中的代码,这些匿名函数被编写为...

javascript node.js unit-testing anonymous-function asynccallback
1个回答
1
投票

您可以使用Chai断言作为承诺。该软件包为Chai提供了一种流利的语言,用于断言有关诺言的事实。

© www.soinside.com 2019 - 2024. All rights reserved.