代码之家  ›  专栏  ›  技术社区  ›  Ajay Gaur

当连接组件更新后,如何在jest中查找组件的属性?

  •  0
  • Ajay Gaur  · 技术社区  · 6 年前

    我在用 jest enzyme 用于测试我的React应用程序。我有一个连接的组件,上面有一个hoc( connectWithActions ) connect 来自React Redux。用 与动作连接 ,我提供 setState , dispatch getState . 我用这个 HOC AS:

    compose(
        connectActions(Handlers),
        connect(mapStateToProps, mapDispatchToProps),
    )(MyComponent)
    

    我的处理程序如下:

    const Handlers = {
        Handler1: (action, {getState, setState, dispatch}) => {
            setState({newStateValue: action.payload.value})
        }
    }
    

    设置状态 设置状态 反应提供给组件。(通过hoc)

    现在 MyComponent 已更新道具 newStateValue 在里面。

    所以,开玩笑的说: 我已经 mounted 我的 composedComponent (已连接)我正在模拟将触发的操作 Handler1 并将状态设置为:

    test('test...', () => {
        const node = Component.find('.className');
        node.simulate('click');
    
        //how do I check that state is updated??
        console.log(Component.find('MyComponent').props());
      });
    

    但我不知道该怎么办 test 这个。我试过检查道具,但没有 新闻状态值

    1 回复  |  直到 6 年前
        1
  •  0
  •   Ajay Gaur    6 年前

    test('test...', () => {
        const node = Component.find('.className');
        node.simulate('click');
    
        Component.update();
    
        expect(Component.find(MyComponent).props(). newStateValue).toEqual(desiredValue);
      });