首页 > 解决方案 > 使用 react 和 redux 调度测试酶中的自定义钩子

问题描述

当您进行组件测试和自定义挂钩调度操作并更改 redux 状态时,测试自定义挂钩的最佳方法是什么。例如,我有在 onChange 或 onClick 上调用的自定义钩子。我喜欢模拟 click 方法,但是调用自定义钩子,甚至以成功结束,在 console.log 中我可以看到更改,检查更改的状态,返回默认状态。

function useButtonCallback = () => {
  const dispatch = useDispatch();
  return React.useCallback(() => {
   dispatch(...);
  }, [dispatch]);
}
const buttonCallback = useButtonCallback();
<Button onClick={() => buttonCallback(...)}
component.button.onClick();
component.update(); // waiting for re-render
// returns false
expect(store.getState().someState.stateBoolean).toBe(true);

BR,

标签: reactjstestingreduxreact-hooksenzyme

解决方案


推荐阅读