如何在玩笑测试中模拟json.parse()

the*_*nom 1 parsing json reactjs jestjs

我的代码中有try / catch,当代码落入catchJSON.parse()的部分时

catch(err){
    JSON.parse(err.message)
}
Run Code Online (Sandbox Code Playgroud)

代码有效,但测试失败。测试只是断言尝试中正在发生某些事情

try {
   popUp.method(mockedUrl)
}
Run Code Online (Sandbox Code Playgroud)

测试只是断言该方法已被调用,但由于JSON.parse()阶段中出现异常而失败了。只是想知道如何将其存根,以便知道我传递给json的内容?

Per*_*ack 5

您可以模拟JSON.parse实现

JSON.parse = jest.fn().mockImplementationOnce(() => {
  // return your what your code is returning.
});
Run Code Online (Sandbox Code Playgroud)

一旦您不应该测试javascript内置对象:JSON,就足够了。因此,您可以返回期望的代码,其余的应该没问题。