Reactjs 具有使用效果的反应组件的单元测试

Reactjs 具有使用效果的反应组件的单元测试,reactjs,jestjs,react-hooks,enzyme,react-16,Reactjs,Jestjs,React Hooks,Enzyme,React 16,我试图在下面的代码中测试useEffect和useEffect内部的函数调用。 它具有useffect和useState挂钩 const-App=()=>{ const[search,setSearch]=useState(“”); const[images,setImages]=useState([]); const[loading,setLoading]=useState(false); const[error,setError]=useState(null); const getImag

我试图在下面的代码中测试useEffect和useEffect内部的函数调用。 它具有useffect和useState挂钩

const-App=()=>{
const[search,setSearch]=useState(“”);
const[images,setImages]=useState([]);
const[loading,setLoading]=useState(false);
const[error,setError]=useState(null);
const getImageData=async()=>{
log(getImages());
const{data,error}=wait getImages();
handleData(数据、错误);
};
const searchImageData=异步(搜索)=>{
const{data,error}=等待搜索图像(搜索);
handleData(数据、错误);
};
常量handleData=(数据,错误)=>{
设置加载(真);
如果(数据){
设置图像(数据);
}else if(错误){
设置错误(错误);
}
设置加载(假);
};
//使用钩子获取图像
useffect(异步()=>{
如果(search.length>0){
searchImageData(搜索);
}否则{
getImageData();
}
},[搜索];
返回(
照片搜索应用程序
{加载(
装载

):错误( 加载数据时出错

):images.length>0( ) : ( 没有找到照片

)} );
};如果你挂载了你的组件,那么你就不必去模仿它了。您可以试试这个软件包
https://testing-library.com/docs/react-testing-library
这在使用Jest+Ezyme@tmhao2005如何测试getImageData()的浅层渲染器中使用挂钩useEffect、useDispatch和useSelector测试React功能组件时非常常见?你必须用JEST模拟你的服务数据不要模拟钩子,你没有React的API。模拟合作者,
searchImages
getImages