在Sinon我可以做以下事情:
var myObj = {
prop: 'foo'
};
sinon.stub(myObj, 'prop').get(function getterFn() {
return 'bar';
});
myObj.prop; // 'bar'
但我怎样才能对 Jest 做同样的事情呢?
我不能用类似的东西覆盖这个函数jest.fn()
,因为它不会取代吸气剂
“无法设置get的值”
对于其他偶然发现这个答案的人,Jest 22.1.0 引入了以下功能:监视 getter 和 setter 方法 https://jestjs.io/docs/jest-object#jestspyonobject-methodname-accesstype.
编辑:就像西斯拉克的回答 https://stackoverflow.com/a/54346703/3930128下面,因为您可以监视 getter 和 setter 方法,所以您可以对它们使用 Jest 模拟,就像使用任何其他函数一样:
class MyClass {
get something() {
return 'foo'
}
}
jest.spyOn(MyClass.prototype, 'something', 'get').mockReturnValue('bar')
const something = new MyClass().something
expect(something).toEqual('bar')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)