如何访问功能组件的 getHandlerId() 以使用酶测试 react-dnd

问题描述

我正在按照 React-DnD project's Testing page 中的说明使用 Enzyme 编写单元测试,但我无法让组件获取处理程序 ID 以调用 backend.simulateBeginDrag(...)

在这里一个简单的项目设置:https://github.com/agonzalezjr/react-dnd-enzyme。基本上从 Create-React-App + Typescript 开始,添加了 React-DnD、ReactDnD 的垃圾箱/盒子示例和酶。它运行正常,测试也运行正常。

这是测试代码

  it('drags - with enzyme',() => {
    const BoxWithTestContext = wrapInTestContext(Box)
    const ref = React.createRef()
    
    const root = mount(
      <>
        <BoxWithTestContext ref={ref} name="test" />
      </>
    )
    expect(root).tobedefined()

    const backend = (ref.current as any).getManager().getBackend()
    expect(backend).tobedefined()

    // How do I get the component or component's getHandlerId() to be able to call
    // backend.simulateBeginDrag(...),etc...
  });

我可以看到后端已设置,并且有一些注册了 ID 为“S1”的东西,但我需要能够以某种方式以编程方式获取该信息。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)