单元中关于 Map 的疑问
wangfupeng1988 opened this issue · 2 comments
wangfupeng1988 commented
描述
我正在 packages/core 为 DomEditor.findPath
写单元测试,一直报错,目前的现象看着和 Map 相关。
复现步骤
第一,找到 NODE_TO_PARENT
的定义,把 WeakMap 临时修改为 Map ,这样好验证。
第二,如下图,在这里可以正常打印 NODE_TO_PARENT.size
(当单元测试中执行 createEditor 或者操作 editor 时)
第三,如下图,在单元测试中打印 NODE_TO_PARENT.size
,结果就是 0
总结
同是在单元测试中,执行 createEditor 即可正常打印 NODE_TO_PARENT.size
。但直接引用、打印 NODE_TO_PARENT.size
就是 0 。
所以,猜测 DomEditor.findPath
测试一直报错,也和 NODE_TO_PARENT.size
有关。而且,DomEditor 其他很多 API 也都用了 WeakMap ,都有这个问题。
wangfupeng1988 commented
可以试试用 setTimeout 异步获取 NODE_TO_PARENT.size
,或者异步验证测试断言。
异步,案例是符合代码逻辑的,但我尚未测试成功。
wangfupeng1988 commented
找到解决方案了:packages/core 中的单元测试,不能在使用 packages/editor 的 createEditor 。使用 packages/core 的 createEditor 就没问题了。
因为从模块关系上,前者也不能依赖于后者