NodeJS 为什么Jest通过了所有测试但仍抛出错误

dwbf0jvd  于 2022-11-22  发布在  Node.js
关注(0)|答案(1)|浏览(118)

我在代码中添加了一个特性,但是当我运行所有测试时,所有测试都成功运行了,但是Jest仍然抛出一个内部错误,并显示以下消息:

Ran all test suites.
the_path\node_modules\expect\build\index.js:303
      throw error;
      ^

JestAssertionError: expect(received).toBe(expected) // Object.is equality

Expected: "node-user-settings"
Received: "null"

我创建了另一个.js文件,并调用了我想用Jest测试的代码,它运行正常。现在,我不明白为什么Jest会抛出一个内部错误。
这是产生错误的测试。

test("asynchronously gets a value, using callbacks without optional filename", () => {
    settings.getState_c("moduleName", null, null, (err, data) => {
      expect(err).toBe(null);
      expect(data).toBe("node-user-settings");
    });
  });
xggvc2p6

xggvc2p61#

我认为您需要告诉Jest您正在测试一个异步函数:https://jestjs.io/docs/asynchronous
如果函数不返回Promise,而是异步的,请使用done而不是async

相关问题