шутка - как избежать использования шпиона для добытчика - PullRequest
0 голосов
/ 11 ноября 2019

У меня есть

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

, который я хотел бы реорганизовать для использования типичного jest.fn() макета, подобного этому:

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

, но я получаю ошибку, утверждая, чтосвойство только для чтения.

1 Ответ

0 голосов
/ 12 ноября 2019

Проверьте 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, боюсь, у меня нет решения. У меня была проблема, близкая к вашей, несколько месяцев назад (которую я не решил), и я задал вопрос о SO, вы можете проверить, что я пробовал, посмотреть, работает ли что-нибудь для вас: Переопределить свойство объекта для целей модульного тестирования

...