Все примеры jest и jest-fetch-mock, с которыми я сталкивался, используют функции, которые выполняют запрос API и возвращают полезную нагрузку непосредственно из вызова функции.
В моем случае у меня другая настройка . У меня есть класс, у которого есть свойство под названием «данные». В классе есть метод под названием «get», который извлекает данные с помощью API выборки и сохраняет их в свойстве data. Когда метод вызывается, он просто возвращает true или false в зависимости от разрешения или отклонения обещания.
Я пытаюсь понять, как в этом случае писать модульные тесты для этого. Моя функция не возвращает полученные данные; только логическое значение.
Итак, если я использую jestSpyOn для имитации метода класса, как мне установить свойство данных, а затем получить результат?
В моем коде я делаю что-то вроде это (НЕ при тестировании, а в реальном приложении):
contactStore = new ContactListStore();
// 'all' is a sample param passed
contactStore.get('all').then(res => {
if(res){
...perform action
}
});
Как вы можете видеть, аргумент res является только логическим, и если он истинен, то contactStore.data будет содержать информацию, полученную с сервера.
Итак, чтобы запустить на нем модульный тест, мне нужно вызвать фиктивный метод get и установить свойство фиктивных данных.
Есть идеи, как это сделать?