模拟除了Jest中的构造函数之外的整个es6类
Mock entire es6 class except constructor in Jest?
如果我有一个a类,如下所示:
class A{
constructor(foo){
this.foo = foo;
}
doStuff(){
//Code protected by an NDA, they'll nuke my house if I tell you what it does.
}
nukeHouse(){
//The implementation of this is somewhat buggy...
}
}
我希望类A的用户能够访问this.foo
,所以我不想模拟构造函数。所有其他方法都应该被嘲笑。我可能可以手动说A.prototype.doStuff = jest.genMockFunction()ù, and do the same for
A.prototype.nuckeHouse,但我希望有一种方法可以做到这一点,而不必每次向A.添加方法时都更新嘲笑代码
有办法做到这一点吗?
我想通用的解决方案是简单地迭代prototype
,并为每个属性创建一个模拟函数:
var A = require.requireActual('./A');
Object.getOwnPropertyNames(A.prototype).forEach(function(prop) {
A.prototype[prop] = jest.genMockFunction();
});
module.exports = A;
如果该类扩展了另一个类,这可能会更加困难。
相关文章:
- ES6构造函数返回基类的实例
- ES6类是否与构造函数相同
- 使构造函数参数具有ES6类方法的特权
- ES6 - 构造函数中的超级必需
- ES6类构造函数参数
- 从构造函数es6调用静态方法
- 具有默认参数值的 ES6 类构造函数上的 NodeJS 错误
- 当函数绑定在构造函数中时,如何在 ES6 React 中向事件处理程序添加参数
- Jasmine:如何在ES6上监视导入的函数/构造函数
- 使用 ES5 和 ES6 将输入注入组件构造函数
- 在类构造函数 (ES6) 中定义常量
- Javascript ES6 中的静态构造函数
- 检测构造函数(符号) - ES6
- 如何在es6类构造函数中访问click事件的方法
- 模拟除了Jest中的构造函数之外的整个es6类
- ES6构造对象,在赋值时不用作函数参数时的默认值
- 来自构造函数的 ES6 调用值
- 使用Jasmine测试该函数是否在ES6构造函数中执行
- 使用ES6构造函数渲染React组件的刷新页面会破坏应用程序
- 更改ES6构造函数中键的值