#reactjs #api #unit-testing #jestjs
#reactjs #API #модульное тестирование #jestjs
Вопрос:
В проекте, над которым я работаю, серверное соединение осуществляется через restclient.js файл, который при упрощении выглядит следующим образом:
const someFunctionality = {
method1: () => fetch(...)
}
const someOtherFunctionality = {
method2: () => Promise(...)
}
const yetAnotherFunctionality = {
method3: () => { return environment.something() }
}
const environment = {
something: () => document.querySelector(...).getAttribute(...)
}
При написании модульных тестов для компонента, который использует restclient, я попытался издеваться над ним следующим образом:
jest.mock('../restclient', () => ({
__esModule: true,
restclient: { yetAnotherFunctionality: {method3: jest.fn(() => {return 'some value'}) } }
}));
Однако тесты завершаются неудачей на этом самом этапе:
TypeError: Cannot read property 'yetAnotherFunctionality' of undefined
> const id = restclient.yetAnotherFunctionality.method3()
Чего мне не хватает? Каков был бы правильный способ издеваться над таким API с помощью Jest?
Комментарии:
1. Не могли бы вы, пожалуйста, добавить дополнительную информацию?
2. Какая информация?