嗨,你能告诉我如何在反应中测试或从状态中获取价值吗? 出错 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);
});
答案 0 :(得分: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);
});
});