首页 > 解决方案 > 我如何在 Jest 中测试这个?

问题描述

我有以下代码:

const HeaderMenu = ({ location }) => {
  const [isModalOpen, setIsModalOpen] = useState(false);
  const dispatch = useDispatch();
  const handleLogout = doLogout(dispatch);
  const handleLogoutOrder = async ({ stage }) => {
    setIsModalOpen(true);
    await dispatch(
      fetchRejectionReasons({
        siteId: 'USDJD',
        serviceId: 'CAR',
        stage: stage || EXIT_REASONS.EXIT
      })
    );
  };
return(
<>
      <Popup
        isModalOpen={isModalOpen}
        setIsModalOpen={setIsModalOpen}
        logout
      />
      <div className={styles.container}>
        <div>
          <Link data-testid="link" to="/">
            <img src={logoUrl} />
          </Link>
        </div>
        <div
          role="button"
          tabIndex="0"
          onClick={
            ORDER_ROUTES.includes(location.pathname)
              ? handleLogoutOrder 
              : handleLogout
          }
          data-testid="headermenu-logout-btn"
        >
          Logout
        </div>
      </div>
    </>
  );
};
)
...

我不知道如何使用反应测试库在 Jest 中测试 handleLogoutOrder 函数。如果有这方面经验的人可以帮助我,将不胜感激。我已经测试了 Popup 渲染。我需要测试 setIsModalOpen(true) 和 dispatch fetch 函数。

标签: reactjsjestjsreact-testing-library

解决方案


推荐阅读