为什么我的 chai-as-promised 拒绝方法不能正常运行?
P粉270891688
P粉270891688 2024-04-02 19:14:00
0
1
356

我使用摩卡、柴和承诺的柴。 测试应该失败,但没有,我不知道出了什么问题,有什么建议吗?

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
    })
})

我试图测试一个应该被拒绝的承诺,测试应该失败,但测试成功了

P粉270891688
P粉270891688

全部回复(1)
P粉515066518

摘自Chai as Promised 文档

您可以使用 async /await.then(() => {}) 在测试中包含多个 Promise。

这四个测试将失败:

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
    );
  });
});

实例:https://stackblitz.com/edit/node- a7t3tx?file=index.js

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!