用摩卡和chai调用异步功能的功能的测试用例

问题描述:

我有返回承诺的功能。这里是函数的代码。用摩卡和chai调用异步功能的功能的测试用例

function firstFunction() { 
    return new Promise (function (resolve , return) { 
      callApi(function(data, error){ 
        if (data) resolve (data) 
        else if (error) reject (error) 
      }) 
    }) 
} 

正如你所看到的,它正在调用一些api,并根据结果返回数据。

我有我想要写测试用例的secondfunction它调用这个函数

function secondFunction() { 
    firstFunction().then(function (data , error) { 
      return data 
    }) 
} 

现在另一个功能。但无法做到这一点。我把记录器也在功能,但似乎不工作,这是我的测试案例

describe.only ("network_test" , function() { 
     it ("test 01", function (done){ 

     secondFunction (function (data) { 
      console.log(data); 
      done() 
     }) 
     }) 
    }) 

要测试的承诺,你应该在摩卡测试返回的承诺,而不是使用done

您的测试应该是这样的:

describe.only('network_test', function() { 
    it('test 01', function() { 
     return secondFunction(function (data) { 
      console.log(data); 
     }); 
    }); 
}); 

更新: 关于你的评论:检查你的错误处理程序,在firstFunctionrejectundefinded。在secondFunction的错误会使承诺永远不会解决。

+0

无法正常工作。它一直说 错误:超过15000ms超时。确保在此测试中正在调用done()回调。 firstFunction的测试用例正在工作 –