Javascript 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', () =

我试图测试这个对象,并使用jest返回他的描述符。在我的例子中,对象包含get函数。我相信我的语法在这里是错误的:

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}