提前感谢您在这方面的帮助!
艰难地使用Mocha、Chai和Chai测试promise rejections正如我承诺的那样我试图使用async/await来实现这一点,但无法成功,我决定从基础开始。
我希望test 3至少能通过摩卡测试。我做错了什么?
我使用了以下代码:
const chai = require('chai');
const chaiAsPromised = require("chai-as-promised")
chai.use(chaiAsPromised)
const should = chai.should()
describe.only('Testing promise tests', () => {
const errortest = () => Promise.reject('rejecting...')
it('test 1', () => {
Promise.reject('rejecting...').should.throw();
});
it('test 2', () => {
errortest.should.throw();
});
it('test 3', () => {
errortest.should.eventually.throw();
});
});我的控制台输出:
0 passing (10ms)
3 failing
1) Testing promise tests
test 1:
AssertionError: expected {} to be a function
at Context.<anonymous> (test/promise.test.js:17:42)
at processImmediate (internal/timers.js:456:21)
2) Testing promise tests
test 2:
AssertionError: expected [Function: errortest] to throw an error
at Context.<anonymous> (test/promise.test.js:22:27)
at processImmediate (internal/timers.js:456:21)
3) Testing promise tests
test 3:
TypeError: [Function: errortest] is not a thenable.
at assertIsAboutPromise (node_modules/chai-as-promised/lib/chai-as-promised.js:31:19)
at Assertion.<anonymous> (node_modules/chai-as-promised/lib/chai-as-promised.js:53:13)
at Assertion.propertyGetter (node_modules/chai/lib/chai/utils/addProperty.js:62:29)
at Object.get (<anonymous>)
at Object.proxyGetter [as get] (node_modules/chai/lib/chai/utils/proxify.js:98:22)
at Context.<anonymous> (test/promise.test.js:26:22)
at processImmediate (internal/timers.js:456:21)发布于 2020-05-28 01:39:46
您需要调用errortest。现在你只需要使用function对象,这样做.should.eventually.throw()就没有任何意义了。对象不会引发;只有代码执行才能引发。
因此,添加括号:errortest().should.eventually.throw()
https://stackoverflow.com/questions/62049225
复制相似问题