Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何测试useState和useEffect_Javascript_Reactjs_React Hooks - Fatal编程技术网

Javascript 如何测试useState和useEffect

Javascript 如何测试useState和useEffect,javascript,reactjs,react-hooks,Javascript,Reactjs,React Hooks,我正在尝试使用Jest+酶测试useState和useEffect react挂钩,但我找不到一种方法,请有人帮忙好吗 const [sPlaceholder, setSPlaceholder] = useState(''); useEffect(() => { setSPlaceholder('abcd'); if (s === '') { dispatchUpdateSPlaceholder(searchPlaceholder); } },

我正在尝试使用Jest+酶测试useState和useEffect react挂钩,但我找不到一种方法,请有人帮忙好吗

const [sPlaceholder, setSPlaceholder] = useState('');
  useEffect(() => {
    setSPlaceholder('abcd');
    if (s === '') {
      dispatchUpdateSPlaceholder(searchPlaceholder);
    }
  }, [sPlaceholder]);

酶目前不支持挂钩。我会看看Kent C.Dodd的
react测试库
,来测试您的钩子。您将测试钩子的结果,而不是钩子本身的单元测试

尝试使用act():


是否要将它们与组件分开进行测试?
import { act } from 'react-dom/test-utils';
act(() => {
  //your condition to update sPlaceholder goes here
});