如何在 javascript 中模拟内部 JSON 对象?

Posted

技术标签:

【中文标题】如何在 javascript 中模拟内部 JSON 对象?【英文标题】:How to mock the intrinsic JSON object in javascript? 【发布时间】:2018-08-24 15:45:18 【问题描述】:

我想模拟在我的反应组件的 componentDidMount 方法中对 JSON.parse 的调用,但不知道如何实现它。我的测试环境是 jest、enzyme、jest-enzyme 和 jest-environment-enzyme。我的测试可用的全局对象是来自 jsdom.window.document.defaultView 的窗口对象。

提前致谢

【问题讨论】:

你为什么要嘲笑它? “提前致谢”:您可能认为在 *** 上可以请人为您编写代码,但这是一种误解。编写代码由您自己决定,当您遇到特定问题时,请询问该问题。 @SLaks 这更多是出于好奇而不是出于必要。我已经模拟了要解析的字符串,所以我可以沿着 toEqual(JSON.parse(mockedString)) 进一步断言。尽管在我编写的自定义匹配器中模拟相等测试的返回是有益的。 @trincot。您可能认为我没有花时间尝试编写代码来实现我想要的,但这是一个误解。是的,我省略了有关我尝试失败的代码的详细信息,但鉴于问题的性质,我认为礼貌地要求知道解决方案的人在我继续查看它时友好地提供它并不过分.为某人编写代码与粘贴他们在所述条件下尝试完成相同或类似任务时使用的代码行之间存在差异。 这道题的英文真的好难懂。 【参考方案1】:

分配给 global.JSON.parse 确实有效。否则,我的代码中的错误提示。

【讨论】:

以上是关于如何在 javascript 中模拟内部 JSON 对象?的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript笔记--- JSON(对象的创建,访问对象属性等;eval函数;模拟将数据库中的信息打印在页面的表格中)

如何使用 JQuery 或 Javascript 使用动态路径从 JSON 对象中删除

JavaScript是如何工作的:深入类和继承内部原理 + Babel和TypeScript之间转换

如何通过json暴露play framework 1.2.7中的内部错误消息id?

如何在 PHPUnit / Laravel 中模拟 JSON 文件

javascript之模拟块级作用域