测试应该在mocha中失败的东西。 (没有抓住断言)

时间:2016-07-18 13:11:10

标签: javascript mocha

我试图在摩卡中测试失败。我希望在此请求成功时注册失败,因为它不应该。我的问题是,当我运行assert(false)时,似乎会触发catch

it('Should fail to complete this hail, because driver is not driver', (done) => {
    req(rider, '/hail/complete', {
        id: driver.id
    }).then(() => {
        assert(false);
        done();
    }).catch((err) => {
        assert.equal(1, err.error.errors.length);
        done();
    });
});

1 个答案:

答案 0 :(得分:1)

承诺链的工作原理:如果.then()抛出异常,后续的.catch()会抓住它。

由于您希望捕获req()引发的拒绝,您可以通过向.then()添加拒绝处理程序来解决这个问题。而且,既然您正在使用Mocha,那么您可以利用Mocha支持承诺的事实。

所有这些都可以让你这样做:

it('Should fail to complete this hail, because driver is not driver', () => {
  return req(rider, '/hail/complete', { id: driver.id }).then(() => {
    assert(false);
  }, err => {
    assert.equal(1, err.error.errors.length);
  });
});