当我定义一个使用普通 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;
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;
});