mockrejectedvalue 是 jest 中用于模拟 promise 被拒绝的 api,仅适用于 jest.fn() 创建的返回 promise 的 mock 函数,常配合 expect(...).rejects 断言错误,可传入 error、字符串等任意值。

mockRejectedValue 是 Jest 提供的一个方法,专门用于模拟 Promise 被拒绝(即 reject)的场景,常用来测试异步函数在出错时的行为。
它用在哪儿?
只能用在已通过 jest.fn() 创建的 mock 函数上,且该函数返回的是一个 Promise。不能直接用在普通函数或未 mock 的函数上。
基本写法
假设你有一个异步函数 fetchUser,你想让它在测试中“假装失败”:
DMap GL地图JSAPI(dmapgl)开发指南。用于编写、审查、调试 DMap 地图 API 代码,涵盖地图初始化、覆盖物渲染、图层管理、事件处理、控件交互等任务。当用户提及 dmap、dmapgl、jsapi‑gl 或相关地图开发需求时自动触发。
✅ 正确示例:
const fetchUser = jest.fn();
fetchUser.mockRejectedValue(new Error('Network failed'));
// 调用后会返回一个被拒绝的 Promise
await expect(fetchUser()).rejects.toThrow('Network failed');
常见搭配写法
- 配合
expect(...).rejects断言错误内容(推荐) - 配合
await+try/catch手动捕获并断言(适合复杂逻辑) - 和
mockResolvedValue对照使用,分别覆盖成功/失败分支 - 可以传入任意值:字符串、Error 实例、自定义对象,不一定是
Error
注意点
如果函数本身不是 Promise,mockRejectedValue 不会自动把它变成异步——它只影响 mock 函数的返回值。确保你的被测函数实际是 async 或返回 Promise,否则测试逻辑可能不匹配真实行为。










