recherche

Maison  >  Questions et réponses  >  le corps du texte

Pourquoi ma méthode de rejet chai-as-promise ne fonctionne-t-elle pas correctement ?

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粉270891688P粉270891688230 Il y a quelques jours379

répondre à tous(1)je répondrai

  • P粉515066518

    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

    répondre
    0
  • Annulerrépondre