Maison > Questions et réponses > le corps du texte
J'utilise du moka, du chai et du chai promis. Le test devrait échouer mais ce n'est pas le cas, je ne sais pas ce qui ne va pas, des suggestions ?
const { describe, it } = require('mocha') const chai = require('chai') const { expect } = require('chai') const chaiAsPromised = require('chai-as-promised') chai.use(chaiAsPromised) describe('test', () => { it('must be rejected', async () => { expect(Promise.resolve('success')).to.rejected }) })
J'essaie de tester une promesse qui devrait être rejetée, le test devrait échouer, mais le test réussit
P粉5150665182024-04-03 00:15:38
Extrait deChai comme document promis
Vous pouvez utiliser async /await
或 .then(() => {})
pour inclure plusieurs promesses dans vos tests.
Ces quatre tests échoueront :
const { describe, it } = require('mocha'); const chai = require('chai'); const { expect } = require('chai'); const chaiAsPromised = require('chai-as-promised'); chai.use(chaiAsPromised); describe('test', () => { it('must be rejected (1)', () => { return expect(Promise.resolve('success')).to.eventually.be.rejected; }); it('must be rejected (2)', (done) => { expect(Promise.resolve('success')).to.eventually.be.rejected.notify(done); }); it('must be rejected (3)', async () => { await expect(Promise.resolve('success1')).to.eventually.be.fulfilled; return expect(Promise.resolve('success2')).to.eventually.be.rejected; }); it('must be rejected (4)', () => { return expect(Promise.resolve('success1')).to.eventually.be.fulfilled.then( () => expect(Promise.resolve('success2')).to.eventually.be.rejected ); }); });
Exemple : https://stackblitz.com/edit/node- a7t3tx?file=index.js