Mocha:如何测试这个返回回调的异步方法?

时间:2017-08-21 18:45:25

标签: javascript unit-testing callback mocha

我想为下面的方法运行单元测试。

returnsCallback (callback) {
  return callback(null, false)
}

我认为传入的回调参数是(error, response)。我无法弄清楚如何测试它,或者它是否适合测试。我是否模拟了回调参数来测试它?到目前为止,我有以下情况,似乎有效,但我不确定。有什么想法吗?

describe('returnsCallback ()', function () {
  let myObj = new MyObject()

  it ('should always return false', function (done) {
    myObj.returnsCallback(function (error, response) {
      if (!error && response === false) {
        done(false)
      } else {
        done(true)
      }
    })
  })
})

1 个答案:

答案 0 :(得分:1)

您应该测试不是回调返回false,而是使用正确的参数调用 。在您的情况下,它们是nullfalse。我不知道你使用什么断言库,我展示了使用should模块的例子:

describe('returnsCallback ()', () => {
  let myObj = new MyObject();

  it ('should call callback with error is null and response is false', done => {
    myObj.returnsCallback((error, response) => {
      should(error).be.exactly(null);
      should(response).be.equal(true);
      done();
    });
  });
});