Обмен рецептами здесь,
Для моего приложения я хотел автоматизировать пользовательское тестирование PoV с помощью Selenium и сказал себе, что возможность читать состояние и отправлять избыточные действия через Selenium была бы замечательной.
Селен управляется с NodeJs.
В node JS для отправки в приложение действия Redux:
const state = await driver
.executeAsyncScript(
"window.stCap({action: arguments[0], cb: arguments[arguments.length - 1]});",
{ type: "global_ST_CAP_GET" }
)
- Arg0 - это избыточное действие (здесь оно называется «global_ST_CAP_GET»)
- Arg1 автоматически добавляется driver.executeAsyncScript, это функция обратного вызова
В одном из файлов помощников:
let globalActionRequest;
export const globalActionRequestSet = ar => {
globalActionRequest = ar;
};
window.stCap = function({ action, cb }) {
globalActionRequest({
...action,
cb
});
};
- stCap вызывает функцию, установленную в
globalActionRequest
который отправит событие в промежуточное программное обеспечение redux
В одной из лучших инициализаций компонента реакции (чтобы иметь возможность "войти" в мир избыточности ...), поместите в globalActionRequest
функцию, предоставляемую mapDispatchToProps
import { globalActionRequestSet } from "...appropriate file..."
class ... extends React.component {
constructor(props) {
super(props)
globalActionRequestSet(props.actionRequest)
}
...
}
mapDispatchToProps = {
actionRequest: action => action
}
- Здесь код, управляющий Selenium, может отправлять любое избыточное действие в ваше приложение.
И, наконец, в файле "sagas" выполните действие, чтобы отправить обратно состояние (которое будет использоваться позже в коде, управляющем селеном)
const global_ST_CAP_GET = function* ({cb}) {
const state = yield sagas.select(state => state);
cb(state);
}
// to add into root sagas
fork(function*() {
yield takeEvery("global_ST_CAP_GET", global_ST_CAP_GET);
})
С Этот трюк возможен с помощью одного инструмента (селен) для тестирования внешнего элемента приложения, но также и внутреннего (путем отправки действий и чтения избыточного состояния).
Надеюсь, вам понравится, рад услышать о любом предложении