angular - ReferenceError:未定义 ResizeObserver
问题描述
我正在使用 Jest 为使用 chart.js 创建折线图的组件编写测试。我在运行测试时遇到错误。
ReferenceError:未定义 ResizeObserver
290 | } 291 | ngAfterViewInit() { > 292 | this.chart = new Chart(this.chartRef.nativeElement, this.chartConfig); | ^ 293 | } 294 | 295 | ngOnInit() { at createResizeObserver (../../../node_modules/chart.js/dist/chart.js:2428:20) at DomPlatform.addEventListener (../../../node_modules/chart.js/dist/chart.js:2502:21) at _add (../../../node_modules/chart.js/dist/chart.js:7051:16) at attached (../../../node_modules/chart.js/dist/chart.js:7070:7) at Chart.bindResponsiveEvents (../../../node_modules/chart.js/dist/chart.js:7079:7) at Chart.bindEvents (../../../node_modules/chart.js/dist/chart.js:7023:12) at Chart._initialize (../../../node_modules/chart.js/dist/chart.js:6547:8) at new Chart (../../../node_modules/chart.js/dist/chart.js:6512:8)
ResizeObserver 正在由 chart.js 内部使用,我没有在任何地方明确使用。有没有人对此有解决方案?
解决方案
您使用的是use-resize-observer
(https://www.npmjs.com/package/use-resize-observer)库还是resize-observer
钩子(https://www.npmjs.com/package/@react-hook/resize-observer)?
如果您的测试在使用use-resize-observer
库的组件上失败,您需要在测试文件中模拟该服务(如果您使用的是 React):
jest.mock('use-resize-observer', () => ({
__esModule: true,
default: jest.fn().mockImplementation(() => ({
observe: jest.fn(),
unobserve: jest.fn(),
disconnect: jest.fn(),
})),
}));
我看到你使用 Angular,所以这篇文章应该很有用:Angular11 test: ReferenceError: ResizeObserver is not defined
window.ResizeObserver =
window.ResizeObserver ||
jest.fn().mockImplementation(() => ({
disconnect: jest.fn(),
observe: jest.fn(),
unobserve: jest.fn(),
}));
describe('', () => {
// test ...
});
推荐阅读
- angular - 如何告诉 RxJS Observable 计时器立即按顺序发出下一个
- database - 需要大量数据迭代时如何设计 dynamo db 数据集?
- vb.net - iText v 7 错误,“类只能从其他类继承”在“继承 IDocumentReadyListener”
- c# - 如何在执行“console.readline();”时阻止我的 C# 控制台程序停止 两次
- oracle - Oracle sql developer连接-状态:失败-测试失败:IO错误:网络适配器无法建立连接
- geode - 从 geode 复制区域中删除条目
- sql-server - SQL Server 中的 GUID 键和 int 键的索引是如何工作的?
- r - 计算校正因子
- django - 如何创建插件以在 Django CMS 的文本插件中插入模板化 html
- c# - C# [Out] [MarshalAs(..) 到 VB.NET