测试承诺的 throws/rejected 与 Mocha + Chai 的承诺是否有效

Testing if a promise throws/rejected with Mocha + Chai as promised doesn't seem to be working

我有一个依赖于另一个异步函数的异步函数,我正在测试它是否会在 url 错误时抛出错误,它确实抛出错误并且它在控制台上。

但是测试一直失败,但是我写了语法。我完全不知道我应该如何写这篇文章,我在这个废话上浪费了太多时间...

expect(GetSecret('', 'test-secret')).to.eventually.throw(
      'TypeError: Only absolute URLs are supported',
    ); 

expect(GetSecret('', 'test-secret')).to.eventually.throw;
expect(GetSecret('', 'test-secret')).to.eventually.be.rejected;

这些是我尝试过的几种方法,但每次都是相同的结果。 我也尝试过 await GetSecret(''... 在所有可能的组合中,但结果相同。

我的版本:

    "@types/mocha": "^5.2.7",
    "@types/chai-as-promised": "^7.1.2",
    "chai": "2.1.2",
    "chai-as-promised": "^7.1.1", 

然后导入:

import { expect } from 'chai';

使用插件需要您告诉 chai use() 它,您可以这样做:

const chai = require('chai');
chai.use(require('chai-as-promised'));

现在您可以使用附加功能了,在本例中 eventually:

const expect = chai.expect;

return expect(returnsAPromise()).to.eventually.equal(someValue);