小编Roh*_*yap的帖子

如何在自定义挂钩内测试 useEffect?

所以我对反应测试还很陌生。我有一个在组件内部调用的自定义挂钩。我正在使用renderHook中的方法react-hook-testing-library。

useEffect我需要测试是否调用自定义挂钩内的方法。我似乎无法弄清楚这一点。

在另一种情况下,我需要弄清楚是否trackPdpGtm没有被调用。

注意:该钩子不返回任何数据。这主要用于发送分析信息。

目前的方法:

使用PdpGtm.js

import { useEffect } from 'react';
import { trackPdpGtm } from 'utils/gtm/pdpGtmUtils';
import _ from 'utils/lodashImports';

export default function useGtmPdp(data = {}) {
  console.log('are you getting called?');
  const { relatedProducts, results, priceInfo, breadcrumbs } = data;
  const relatedProductsLoaded = _.get(relatedProducts, 'relatedProductsLoaded');
  useEffect(() => {
     if (relatedProductsLoaded) {
         trackPdpGtm(data);
     }
  }, [relatedProductsLoaded, results, priceInfo, breadcrumbs]);
}

Run Code Online (Sandbox Code Playgroud)

我需要测试是否trackPdpGtm被调用。还需要检查它是否在另一个测试用例中没有被调用。

gtm.test.js

import { renderHook, cleanup, act } from …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs jestjs react-testing-library react-hooks-testing-library

4
推荐指数
1
解决办法
1万
查看次数