我正在使用jest
和enzyme
来测试我的React应用。我有一个连接的组件,上面有1个临时组件(connectWithActions
)和react-redux中的connect
。使用connectWithActions
,我提供setState
,dispatch
和getState
。我将此HOC
用作:
compose(
connectActions(Handlers),
connect(mapStateToProps, mapDispatchToProps),
)(MyComponent)
我的处理程序如下:
const Handlers = {
Handler1: (action, {getState, setState, dispatch}) => {
setState({newStateValue: action.payload.value})
}
}
此setState
是setState
,它为组件提供反应。 (通过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
。我尝试检查道具,但没有任何newStateValue
。
答案 0 :(得分:0)
以下代码对我有用:
test('test...', () => {
const node = Component.find('.className');
node.simulate('click');
Component.update();
expect(Component.find(MyComponent).props(). newStateValue).toEqual(desiredValue);
});