开玩笑的深方法间谍

时间:2019-06-03 15:47:21

标签: javascript jestjs

如何在publish属性中监视publishBatchinstance

Object.defineProperty(Provider, 'instance', {
    get: jest.fn(() => { 
        return {
            publish: jest.fn(),
            publishBatch: jest.fn()
        }
    }),
});

我知道jest.spyOn(Provider, 'instance', 'get');,但我需要做得更深,在文档中找不到任何信息。

1 个答案:

答案 0 :(得分:1)

解决方案比我想象的容易得多

const obj = {
    publish: jest.fn(),
    publishBatch: jest.fn()
}

Object.defineProperty(Provider, 'instance', {
    get: jest.fn(() => { 
        return obj;
    }),
});

const publishSpy = jest.spyOn(obj, 'publish');

...

expect(publishSpy).toHaveBeenCalled();