#javascript #reactjs #redux #cypress
Вопрос:
В настоящее время я тестирую наше веб-приложение с помощью cypress, и у меня возникла серьезная проблема с очисткой состояния redux между cy.посещениями. Я Использую cypress 8.6.0. Мы используем React с react-redux.
Текущий код в моем тесте:
const state = { some: thing } // a normal object with key-value pairs
cy.visit('/B').then(() => {
cy.window()
.its('store')
.then(store => {
store.dispatch({
type: 'SET_ORDER',
payload: state,
});
});
});
Проблема с этим иногда заключается в том, что маршрут /B загружается до того, как произойдет событие disptach, и тест завершается сбоем, потому что /B зависит от того, какое состояние находится в моем хранилище redux для работы.
поэтому я подумал, что что-то подобное может сработать:
const state = { some: thing } // a normal object with key-value pairs
cy.visit('/A').then(() => {
cy.window()
.its('store')
.then(store => {
store.dispatch({
type: 'SET_ORDER',
payload: state,
});
});
})
cy.visit('/B'); // redux state gets cleared before going to /B
Но это не работает, так как Cypress очищает все состояния между тестами (но также и между cy.посещениями в одном и том же тесте it ()?).
Есть ли в любом случае, что я могу сохранить свое состояние восстановления в течение всего теста? Или, по крайней мере, только при переходе из /А в /Б?