为何Jest测试用例expect(1).toEqual(2)未按预期失败?
问题原因及解决方案
核心原因:版本不兼容
你遇到的问题是ts-jest与Jest版本不匹配导致的:
- ts-jest 29.x系列仅支持Jest 29.x版本
- 你当前使用Jest 30.1.1,ts-jest 29.4.1无法适配Jest 30的内部API变更,导致基础断言逻辑失效。
具体表现的解释
expect(1).toEqual(2)意外通过:ts-jest未正确处理Jest 30的断言执行流程,该断言实际未被Jest正确校验,直接被标记为通过。toHaveLength正常失败:这个匹配器的实现逻辑未受版本不兼容影响,仍能被Jest正确执行校验。
解决办法
二选一即可:
- 降级Jest到29.x版本,与ts-jest 29.4.1匹配:
npm install jest@^29.7.0 --save-dev - 升级ts-jest到适配Jest 30的版本(若已有适配版本,比如ts-jest 30.x系列):
npm install ts-jest@^30.0.0 --save-dev
内容的提问来源于stack exchange,提问作者Jan Dolejsi
相关产品推荐
相关产品推荐

