jestjs - Jest 和 Sinon:我如何存根整个班级?
问题描述
所以我知道在 sinon 你可以去
sinon.stub(class.prototype, 'method').callsFake(() => {
// ... some logic here ...
});
但是,我需要存根整个类,而不仅仅是一个方法。理想情况下,我想做类似的事情:
sinon.stub(class.prototype, myClassObjectHere);
有没有办法用诗乃做到这一点?
感谢您的帮助和回答,但我知道人们会问为什么需要这样做。没有其他办法。原因是我存根的这个 class.method 并不总是返回相同的值。基于传递给构造函数的参数......存根方法需要调用类上的其他几个方法之一。从我的存根方法来看,我看不到其他方法。谢谢你的帮助
解决方案
您可以使用sinon.createStubInstance()
, 创建一个具有给定函数的新对象作为原型并存根所有已实现的函数。
var stub = sinon.createStubInstance(MyConstructor, overrides);
overrides 是覆盖已创建存根的可选映射,例如:
var stub = sinon.createStubInstance(MyConstructor, {
foo: sinon.stub().returnsThis()
});
推荐阅读
- python - pd.crosstab() 在 for 循环中
- kubernetes - OCP 4.7.1 - 在 SSL_ERROR_SYSCALL 中卷曲 oauth-openshift.apps 结果
- erlang - BEAM 文件是否记得它是否使用 -Werror 构建?
- spring - oracle jdbcTemplate 列类型无效
- c - 如何在c中替换char数组中的字母?
- html - 使用 document.delegate 时,子元素的 JQuery 事件处理程序在父元素之后触发
- apache-spark - 无法从 spark-sql 查询 Hive 表(德鲁伊存储)
- scala - 如何在scala中使用过滤器使用多重条件?
- java - 如何在 Java 中正确使用复制构造函数?
- swift - 单击选项卡栏时如何将表格视图发送到集合视图单元格的顶部?