Chai 正如所承诺的那样没有告诉我哪里发生了错误

问题描述 投票:0回答:1

当我定义一个使用普通 chai 失败的测试时,如下所示:

it("Should fail 1", async () => {
    expect(1).to.equal(2);
});

我收到以下错误:

         Should fail 1:

      AssertionError: expected 1 to equal 2
      + expected - actual

      -1
      +2
      
      at /home/myComputer/tests/myTest.ts:10:26
      at Generator.next (<anonymous>)
      at new Promise (<anonymous>)
      at __awaiter (tests/myTest.ts:27:12)
      at Context.<anonymous> (tests/myTest.ts:45:33)
      at processImmediate (node:internal/timers:478:21)

即第一行告诉我我的 AssertionError 来自 myTest.ts 中的第 10 行。

当我尝试测试承诺时,例如

it("my test 2", async () => {
    await expect(Promise.reject("test")).to.be.fulfilled;
});

我只得到

         my test 2:
     AssertionError: expected promise to be fulfilled but it was rejected with 'test'

这非常烦人,因为这个错误没有告诉我任何关于我的测试中错误实际发生的位置。我如何让它告诉我错误实际发生在哪里?

我导入

chai
chai-as-promised
的方式就像这样以防万一:

import chai from "chai";
import chaiAsPromised from 'chai-as-promised';
chai.use(chaiAsPromised);
const expect = chai.expect;
javascript testing chai chai-as-promised
1个回答
0
投票

如果您使用

chai.config.includeStack
,您应该能够看到错误的行。此外,您需要链接 eventually
chai-as-promised
 属性。

import chai from "chai";
import chaiAsPromised from 'chai-as-promised';
chai.use(chaiAsPromised);

chai.config.includeStack = true; // <--- Add this

const expect = chai.expect;

it("my test 2", async () => {
    // Add .eventually
    await expect(Promise.reject("test")).to.eventually.be.fulfilled;
});
© www.soinside.com 2019 - 2024. All rights reserved.