您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

与Sinon模拟Redis构造函数

与Sinon模拟Redis构造函数

您的问题不是Sinon是否支持这一点,而是您对Ecmascript中“类”的工作方式缺少了解,如尝试在constructor测试代码中对属性进行存根显示。这将永远不会起作用,因为该属性与结果对象的结果无关。它只是对用于创建对象的函数的引用。我在Sinon跟踪器上涵盖了一个非常相似的主题,您可能有兴趣阅读以获取一些核心JS foo :-)基本上,无法对构造函数进行存根,但是您可以强迫您的代码使用另一个构造函数通过DI或链接接缝代替它。

事实上,在同一线程中有一些答案,您将看到我涵盖了一个示例,说明我本人如何设计类使用支持通过依赖注入轻松测试的Redis。您可能想将其检出,因为它或多或少直接适用于上述示例模块。

您已经尝试使用的另一种技术是使用 链接 (使用rewire)。Sinon主页上有一篇不错的文章。双方rewireproxyquire会就好在这里做的工作:我觉得你刚才通过包装要求声明以模拟复杂的事情了一下。

即使我是Sinon维护团队的成员,我也从未使用过该mock功能,因此我无法告诉您如何使用该功能,因为我认为它使测试变得晦涩难懂,但是要使基本的链接接缝正常工作,rewire我基本上会删除所有Sinon首先编写代码,然后进行基本的案例研究(删除redis已创建的存根模块)。

只有这样,才能根据需要添加Sinon代码

其他 2022/1/1 18:14:17 有454人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶