Я написал функциональный компонент, который использует хук React.useReducer () как часть кода.
Этот компонент имеет редуктор и действия как его часть. Я думал, что вместо того, чтобы тестировать функцию и действия редуктора по отдельности, я напишу интеграционный тест следующим образом:
IntegrationTest. js
describe('integration test for reducers and actions', () => {
const initialState = { secretWord: 'party' };
test('dispatch actions and verify updated state', () => {
const [state, dispatch] = React.useReducer(reducer, initialState);
dispatch({ type: setSecretWord, payload: 'train' });
expect(state).toEqual({ secretWord: 'train' });
});
});
Когда я запускаю тест Я получил ошибку как:
Неправильный вызов ловушки. Хуки могут быть вызваны только внутри тела компонента функции. Это может произойти по одной из следующих причин: 1. У вас могут быть несовпадающие версии React и средства визуализации (например, React DOM). 2. Возможно, вы нарушаете правила хуков. 3. Возможно, у вас есть несколько копий React в то же самое приложение
Как мне написать интеграционные тесты в этом сценарии, поскольку ловушка может вызываться только внутри компонента?