我的目标是在运行jest单元测试时,在Angular应用程序中模拟resize-observer-polyfill。
目前,我收到以下错误:
TypeError: resize_observer_polyfill_1.default is not a constructor
我发现了一个related issue here,因此尝试在组件旁边实现一个mock。
- 模拟/调整观察者的大小.ts*
class ResizeObserver {
observe() {
// do nothing
}
unobserve() {
// do nothing
}
}
window.ResizeObserver = ResizeObserver;
export default ResizeObserver;
然后在我的spec文件中导入它:
import ResizeObserver from './_mocks_/resizeObserver';
但这并不能解决问题。
在code中,我使用了如下的polyfill:
import ResizeObserver from 'resize-observer-polyfill';
这真的是一个令人沮丧的问题,所以我真的希望以某种方式解决这个问题。
3条答案
按热度按时间z9smfwbn1#
来自同一个GitHub问题:
如果您想立即调用resize处理函数,可以将其添加到实现中:
如果您想按需调用它,一种方法是向observe函数添加一些实际的事件处理程序。
ilmyapht2#
通过将此代码添加到我的测试文件中,就在de
describe('...
上方,解决了问题1aaf6o9v3#
从我看到的情况来看,您正在单元测试中导入mock,但是您没有使用它。您需要在单元测试文件的顶部包含类似以下内容的内容: