使用mocha和chai调用异步函数的函数的测试用例

时间:2016-07-25 10:58:29

标签: javascript mocha bdd chai

我有返回承诺的功能。这是功能代码。

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

你可以看到它正在调用一些api,并在结果上返回它的返回数据。

我有另一个调用此函数的函数

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

现在我想为 secondfunction 编写测试用例。但不能这样做。我把logger也放在了函数中,但似乎没有用,这是我的测试用例

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

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

1 个答案:

答案 0 :(得分:0)

要测试承诺,您应该在mocha测试中返回承诺,而不是使用done

您的测试应该是这样的:

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

<强>更新 关于您的评论:请检查您的错误处理程序,firstFunction rejectundefinded。在secondFunction中,错误将使承诺永远不会解决。