Pourquoi ma méthode de rejet chai-as-promise ne fonctionne-t-elle pas correctement ?
P粉270891688
P粉270891688 2024-04-02 19:14:00
0
1
421

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粉270891688
P粉270891688

répondre à tous(1)
P粉515066518

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal