我使用react-dnd
库在React中创建了一个拖放交互,我想测试,在拖放时,将调用某个函数。
但是,我在如何设置测试以使其通过方面受阻。
到目前为止,我的代码是:
it('should ', () => {
const dropTarget = mountWithTheme(
withRedux(store, <DnDCard fileId={folder._id} onClick={onClick} />),
)
const dragSource = mountWithTheme(
withRedux(store, <DnDCard fileId={img._id} onClick={onClick} />)
)
var backend = getBackendFromInstance(<DnDCard fileId={folder._id} onClick={onClick} /> )
var manager = backend.manager
simulateDragDropSequence(dropTarget.instance(), dragSource.instance(), backend)
})
在那个simulateDragDropSequence
中,我收到一条错误消息:
Cannot read property 'getHandlerId' of null
。
这是因为function
试图在其前两个参数上调用getHandlerId
,但是显然实例没有提供该参数。
mountWithTheme
将Redux
与Provider
一起添加到我们的组件中,因此效果很好。
这里是什么问题?
LE:读here时,getHandlerId
是使用Legacy Decorator API设置组件时可用的实例方法,但我是使用Hooks(顶级API)完成的。我认为这可能是无法测试的原因。