我具有以下功能:
myFunction = _.debounce((viewport) => {
...
otherFunction();
...
someOtherFunction();
...
}, 650)
我正在尝试通过玩笑来断言otherFunction
和someOtherFunction
是否已运行。为此,我想使用WebStorm的调试器检查功能流。
我尝试嘲笑_.debounce
:
_.debounce = jest.fn((fn) => fn);
即使我尝试在myFunction
上添加间谍并且开玩笑地说该函数已运行,我也无法使调试器停止在该函数内部。
如果我尝试删除_.debounce
函数,则调试器将成功停止。
有什么办法可以使这项工作成功吗?
答案 0 :(得分:0)
这未经测试,但是我相信您必须在模拟实现中执行该功能:
_.debounce = jest.fn(fn => fn());
答案 1 :(得分:0)
我最终将函数逻辑移到了一个新函数myFunctionNoDebounce
上,并且仅将旧的myFunction用作去抖动包装器。这样,我可以测试myFunctionNoDebounce
,而我真的不需要测试myFunction
。
这当然不是最优雅的解决方案,但目前可以使用。我愿意提出更多建议,以更好地解决此问题。
myFunctionNoDebounce = (viewport) => {
...
otherFunction();
...
someOtherFunction();
...
}
myFunction = _.debounce((viewport) => {
this.myFunctionNoDebounce(viewport)
}, 650)