开玩笑-如何避免将间谍用作吸气剂

我有这个

jest.spyOn(store.customerData,"isValid","get").mockReturnValue(true);

我想重构为使用像这样的典型jest.fn()模拟:

store.customerData.isValid = jest.fn().mockResolvedValue(true)

但是我收到一个错误消息,声称该属性是只读的。

wjt19871002 回答:开玩笑-如何避免将间谍用作吸气剂

检查方法的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

本文链接:https://www.f2er.com/3124498.html

大家都在问