mockResolvedValue 是 Jest 中用于模拟 Promise 成功响应的便捷方法,需配合 jest.fn() 使用,内部等价于 mockImplementation(() => Promise.resolve(value)),推荐优先使用;错误场景应使用 mockRejectedValue。

mockResolvedValue 是 Jest 提供的便捷方法,专门用于模拟返回 Promise.resolve(...) 的异步函数(比如 async 函数或返回 Promise 的普通函数),让测试中能直接控制 Promise 成功时的值。
基本用法:给 jest.fn() 添加成功响应
它必须配合 jest.fn() 使用,不能直接作用于真实函数。常见场景是模拟 API 调用、数据库查询等异步依赖:
- 先用
jest.fn()创建一个模拟函数 - 调用
.mockResolvedValue(value)设定它被调用后返回的 Promise 成功值 - 该函数在测试中被 await 或 .then() 时,会自动 resolve 你指定的 value
示例:
const fetchUser = jest.fn().mockResolvedValue({ id: 1, name: 'Alice' });之后调用 await fetchUser() 就会得到 { id: 1, name: 'Alice' }。
搭配 mockImplementation 也能用,但更推荐 mockResolvedValue
你也可以用 mockImplementation(() => Promise.resolve(...)) 达到类似效果,但 mockResolvedValue 更简洁、语义更清晰,且自动处理 Promise 状态,无需手写 Promise.resolve。它内部等价于:
DMap GL地图JSAPI(dmapgl)开发指南。用于编写、审查、调试 DMap 地图 API 代码,涵盖地图初始化、覆盖物渲染、图层管理、事件处理、控件交互等任务。当用户提及 dmap、dmapgl、jsapi‑gl 或相关地图开发需求时自动触发。
所以优先用 mockResolvedValue,除非你需要动态逻辑(比如根据参数返回不同值)——这时就得用 mockImplementation 配合 Promise.resolve。
注意:只影响 resolve,错误需用 mockRejectedValue
mockResolvedValue 只设定成功路径。如果要测试错误分支(如网络失败),要用对应的 mockRejectedValue(error) 或 mockRejectedValueOnce:
- fetchUser.mockRejectedValue(new Error('Network failed'));
- 再 await 它就会抛错,可配合
expect(...).rejects.toThrow(...)断言
常见组合:mockResolvedValueOnce 实现多次不同响应
测试连续调用返回不同结果时(例如第一次成功、第二次失败),可用 mockResolvedValueOnce + mockRejectedValueOnce:
第一次 await fetchUser() 得到 { id: 1 },第二次则抛错。

















