首页 > 解决方案 > 如何在使用 Enzyme 测试 React 组件时设置状态

问题描述

我正在测试一个 React 组件。我的状态是——

constructor(props){
 super(props);
 this.state = {
  data:{
   name: "",
  },
 isActive: false,
 }
}

在我的测试文件中,我想将名称状态设置为某个值,例如 -

test("should change the state to Active when user changes the status from Inactive", () => {
wrapper.setState({
  isActive:true,
  data:{ name:"Jim" },
});
expect(wrapper.state("data").name).toBe("Jim");
)};

在这里,我可以使用wrapper.state("data").name这条线访问状态。但是使用 setState (在测试中提到)它给了我错误 -

TypeError:e.value.replace 不是函数

所以我想知道的是如何设置name键的状态。

标签: reactjsunit-testingjestjsenzyme

解决方案


推荐阅读