You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jest中使用await无响应:测试卡住无结果返回

Jest测试使用await卡住的解决方法

你的测试卡住的核心原因是测试函数未标记为async。Jest需要明确识别异步测试场景——要么测试函数返回Promise,要么使用async/await语法,要么通过done回调通知测试完成。你在测试里用了await但没给it的回调函数加上async关键字,Jest会把这个测试当成同步测试直接执行完毕,而await等待的异步操作还没完成,最终导致整个测试进程卡住。

修改后的代码如下:

describe("retrieveCandidate", () => {
  describe("when settings are found", () => {
    beforeEach(() => {
      configurationApi = new ConfigurationApi(BaseUrl);
    });

    afterEach(() => {
      configurationApi = undefined;
    });
    // 为测试函数添加async关键字
    it("should return set of configuration values", async () => {
       const configurationValueSet: IConfigurationValueSet | undefined =
         await configurationApi?.retrieveCandidate(controlConfigurationValueSet.specializationKey);
      expect(true).toEqual(true);
    });
  });
});

额外注意:要确保configurationApi.retrieveCandidate方法确实返回一个Promise。如果它是基于回调的异步函数,你需要先把它包装成Promise,否则await无法正确等待异步操作完成。

内容的提问来源于stack exchange,提问作者The Coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 01:05:23