我正在按照 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”的东西,但我需要能够以某种方式以编程方式获取该信息。