Я хочу проверить, обновляется ли мое состояние после вызова API в моем компоненте.У меня есть метод, скажем, method1()
, и в этом методе он вызывает fetch
и устанавливает состояние для результатов.Вот метод:
method1 = () => {
if (this.state.state1 !== "") {
fetch('api')
.then((resp) => resp.json())
.then((data) => {
this.setState({ state2: data });
})
.catch((error) => {
console.log(error);
});
}
}
В моем тестовом файле я уже высмеивал API с fetch-mock
, и вот тест, пытающийся проверить это:
it('updates the state after the api call', () => {
const instance = component.instance();
instance.method1();
expect(component.state('state2')).toBe(MOCK_DATA);
});
Мой MOCK_DATA
определяется вместе с фиктивными выборками и компонентом (мелкими) в beforeEach()
Когда я запускаю это, state2
все еще находится в своем первоначальном состоянии ([]
), ноЯ ожидаю, что это будет заполненный массив.
Я также попытался выполнить асинхронный тест и использовать await
, но получаю те же результаты.
Любая помощь будет принята!Спасибо!