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

如何在Jest中正确配置Mock使其抛出错误?

使用Jest测试GraphQL API:模拟Meteor callMethod的实践

我目前正在用Jest测试我的GraphQL API,为每个查询和突变(mutation)都单独搭建了测试套件。现在有两个分别放在独立测试套件里的测试,核心要解决的问题是模拟突变中用到的Meteor callMethod 函数。

下面是其中一个测试的代码片段,用来验证当传入的邮箱不存在时,系统会抛出对应的错误:

it('should throw error if email not found', async () => {
  callMethod
    .mockReturnValue(new Error('User not found [403]'))
    .mockName('callMethod');

  const query = FORGOT_PASSWORD_MUTATION;
  const params = { email: 'user@example.com' };
  
  const result = await simulateQuery({
    // 此处填入simulateQuery的配置参数,比如上下文、变量等
  });

  // 后续可添加断言逻辑,验证错误信息是否符合预期
});

核心细节说明

  • 用mockReturnValue直接指定callMethod的返回值为预设错误对象,以此模拟后端返回“用户不存在”的异常场景
  • mockName('callMethod')能让测试报告里的mock标识更清晰,方便后续排查测试问题
  • 因为每个测试套件相互独立,记得在每次测试前重置callMethod的mock状态,避免测试用例之间的状态污染

内容的提问来源于stack exchange,提问作者Le garcon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:48:02