#reactjs #redux #jestjs #enzyme
#reactjs #redux #jestjs #фермент
Вопрос:
Привет, не могли бы вы, пожалуйста, рассказать мне, как протестировать или получить значение из состояния в react? ошибка получения wrapper.instance(…).handleClickShowPassword не является функцией
вот мой код https://codesandbox.io/s/l2lk4n794l
it("toggle showpassword value", () => {
wrapper.setState({ showPassword: false });
wrapper.instance().handleClickShowPassword();
expect(wrapper.state.showPassword).toEqual(true);
});
Ответ №1:
Поскольку LoginContainer
это приложение, обернутое в HOC, вам нужно либо экспортировать компонент без withStyles
HOC, либо использовать dive
в оболочке, чтобы получить экземпляр компонента. Также state
включена функция component instance
, и, следовательно, вам нужно вызвать ее для доступа к состоянию
describe("<LoginContainer/>", () => {
let wrapper;
beforeEach(() => {
wrapper = shallow(<LoginContainer />);
});
it("toggle showpassword value", () => {
const comp = wrapper.dive();
comp.dive().setState({ showPassword: false });
comp.instance().handleClickShowPassword();
expect(comp.state("showPassword")).toEqual(true);
});
});