You need to enable JavaScript to run this app. 如何使用Jest+Enzyme测试带React Hooks的函数式组件内部函数
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Jest+Enzyme测试带React Hooks的函数式组件内部函数

React函数式组件内部事件函数的测试问题

组件实现

用户编写了一个使用useState Hook的函数式组件,核心代码如下:

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 + Enzyme,希望为组件内部定义的onDeleteList函数编写测试用例,自行编写的测试代码如下:

describe('PList', () => {
  let wrapper = shallow(<Plist {...props} />);
  it('should call onDeleteList', () => {
    expect(wrapper.find('onDeleteList')).toBeTruthy();
  });
});

遇到的问题

  • 无法确认现有测试写法的正确性
  • 测试运行后,覆盖率报告始终提示onDeleteList()函数未被有效覆盖
  • 不清楚这类定义在函数式组件内部、通过props传递给子组件的函数,应该如何编写正确的测试逻辑

内容的提问来源于stack exchange,提问作者user1122

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.10 07:06:09