我有这个
jest.spyOn(store.customerData, "isValid", "get").mockReturnValue(true);
我想重构为使用像这样的典型jest.fn()
模拟:
store.customerData.isValid = jest.fn().mockResolvedValue(true)
但是我收到一个错误消息,声称该属性是只读的。
答案 0 :(得分:0)
检查方法的ObjectProperties
。
如果configurable
属性设置为true
,则可以尝试使用Object.defineProperty():
Object.defineProperty(store['customerData'], 'isValid', {writable: true});
// And then put your code
store.customerData.isValid = jest.fn().mockResolvedValue(true);
如果将其设置为false
,恐怕没有任何解决方法。几个月前,我遇到了一个与您很接近的问题(我没有解决),我问了一个问题,您可以检查一下我尝试过的内容,看看是否有任何适合您的方法:Override Object Property for unit testing purposes