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
相关产品推荐
相关产品推荐

