Javascript Jest:如何测试对象的get描述符
我试图测试这个对象,并使用jest返回他的描述符。在我的例子中,对象包含get函数。我相信我的语法在这里是错误的:Javascript Jest:如何测试对象的get描述符,javascript,unit-testing,jestjs,Javascript,Unit Testing,Jestjs,我试图测试这个对象,并使用jest返回他的描述符。在我的例子中,对象包含get函数。我相信我的语法在这里是错误的: get: function number() { return this.x; }, 有没有办法解决这个问题 下面是一个例子: let obj = { x: 10, get number() { return this.x; }, }; test('Return property descriptors of obj', () =
get: function number() {
return this.x;
},
有没有办法解决这个问题下面是一个例子:
let obj = {
x: 10,
get number() {
return this.x;
},
};
test('Return property descriptors of obj', () => {
expect(Object.getOwnPropertyDescriptors(obj)).toMatchObject({
x: {
value: 10,
writable: true,
enumerable: true,
configurable: true
},
number: {
get: function number() {
return this.x;
},
set: undefined,
enumerable: true,
configurable: true
}
});
});
结果:
断言失败,因为
get:function number(){…}
与描述符中的函数不同,function number(){}!==函数号(){}
应将其断言为具有以下功能的任何函数:
...
number: {
get: expect.any(Function),
set: undefined,
enumerable: true,
configurable: true
}
...
能否在get之后添加分号以输入obj变量。因此它将是get:function number(){},而不是get function number(),让obj={x:10,get:number(){返回this.x;},};不确定这是否正确。此处“get”是getter
get:function number(){
与对象中使用的函数不同,因此出现错误。您可能需要使用expect.any(function)
。number:{get:function number(){return this.x;},集:未定义,可枚举:true,可配置:true}