在Promise处理程序中使用assert的好策略是什么?

时间:2015-06-29 07:50:27

标签: node.js testing promise mocha

我想测试使用mocha的异步操作返回的值。这些值是通过简单的A +承诺提供的。不幸的是,.then处理程序现在将吞没assert抛出的所有异常,因此无论如何测试都会通过:

someOp().then(function(result){
  // throws, but will be swallowed
  assert(result.indexOf('I_DONT_WANT_THAT') < 0);
  done();
});

如何正确测试异步操作的结果?我能想到的只是无休止地传播错误,但在某些时候我需要断言为我的测试失败提出一个真正的错误。

1 个答案:

答案 0 :(得分:3)

如果你回来,摩卡可以处理承诺:

it('value should be 0', function() {
  return Promise.resolve(1).then(function(value) {
    assert(value === 0);
  });
});