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

