javascript - Mocha : how to test this async method that returns a callback?

标签 javascript unit-testing callback mocha.js

我想对如下方法运行单元测试。

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

我相信传入的回调参数是(错误,响应)。我不知道如何测试这个或者它是否适合测试。我是否模拟回调参数来测试它?到目前为止,我已经在下面了,它似乎有效,但我不确定。有什么想法吗?

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)
      }
    })
  })
})

最佳答案

您应该测试的不是回调返回 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();
    });
  });
});

关于javascript - Mocha : how to test this async method that returns a callback?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45803767/

相关文章:

javascript - JW Player - 使用事件处理程序停止(目标)多个玩家

javascript - window.location.href 是否具有服务器特定行为?

javascript - 如何在以ajax方式插入后刷新我的服务器控件?

javascript - 将对象传递给护照的 require() 时出现类型错误

ios - RxSwift 单元测试

python - 在每 N 个 epoch 结束时保存模型权重

javascript - 在 Ajax 调用后将值设置为 parent 的 parent 的 child 的 sibling

unit-testing - Grails 3.2.7使用http方法测试url映射

javascript - 在私有(private)方法上使用 Jasmine spyon

java - 如何设置Listner停止动画并向MainActivity Android发送回调