使用jest更新组件的状态

时间:2017-08-22 09:24:43

标签: javascript reactjs unit-testing jestjs

我正在尝试用jest更新组件的状态。

我要做的是检查当updated的状态值设置为true时,新道具不应该更改状态的值。 从我在这里读到的答案,我假设我可以执行以下操作来更新组件的状态。

Game.setState({
    updated: true
});

以下是我的代码。

const props = {
  goals: "0"
};

it("should should not update the state of goals when the value prop is changed if updated value in state is set to true", () => {
    renderer.render(<Game {...props} />, div);

    Game.setState({
        updated: true
    });

    Game.componentWillReceiveProps({
        goals: "2"
    });

    expect(Game.state.goals).toBe("0");    
});

1 个答案:

答案 0 :(得分:4)

您可以使用实例

const gameRender = renderer.create(<Game {...props} />)
const gameInstance = gameRender.getInstance()

gameInstance.setState({ updated: true })

等等。您的代码引用构造函数,而不是实例。