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

时间:2021-01-04 20:09:30

标签: reactjs enzyme 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”的东西,但我需要能够以某种方式以编程方式获取该信息。

0 个答案:

没有答案