reactjs - 如何使用 React 钩子测试功能组件内部的功能?
问题描述
我有一个使用 useState 钩子的功能组件,如下所示:
import React,{useState} from 'react';
export const PList = (props) =>{
const [obj, setObj]= useState({
value: null,
open: null
});
let onDeleteList = (data) =>{
setObj({....});
};
return(
<React.Fragment>
{
props.arr.map((p,i)=>{
return <childA onDeleteList={onDeleteList} />
})
}
</React.Fragment>
);
}
我使用 Jest+ 酶并希望编写一个测试用例来测试该组件中的 onDeleteList 函数。我已经尝试使用以下代码:
describe('PList',()=>{
let wrapper = shallow(<Plist {...props}/>);
it('should call onDeleteList',()=>{
expect(wrapper.find('onDeleteList')).toBeTruthy();
});
});
我不确定这是否是正确的方法,覆盖率报告仍然显示 onDeleteList() 未包含在测试用例中。谁能告诉我如何为这种情况编写测试用例?
解决方案
这就是你应该如何测试:
import childA here
describe('PList',()=>{
let wrapper = shallow(<Plist {...props}/>);
it('should call onDeleteList',()=>{
const onDeleteListHandler=wrapper.find(childA).at(0).prop("onDeleteList");
onDeleteListhandler(pass your data here);
expect(onDeleteListhandler).toHaveBeenCalledTimes(1);
});
});
推荐阅读
- c# - 注入 ILogger
- android - 预填充的 Android Room 数据库保持为空
- flutter - 为什么 ElevatedButton 被拉伸以适应屏幕的宽度?
- javascript - 按下输入文本字段时增加 div 元素的 paddingTop,否则减少
- ios - 在 react-native run-ios 上构建失败
- python - 虚拟环境如何在 python 中工作(内部)
- android - Jetpack Compose 中的垂直嵌套滚动
- php - 通过字符串路径获取数组的值
- python - 如何在使用 load_img 加载图像之前裁剪图像?
- reactjs - 我正在尝试制作表单应用程序。在这我面临关于if语句的问题。find() 方法是猫鼬的,这不是问题