如何使用玩笑模拟MediaSource?

问题描述

我有一个JavaScript(响应)视频组件,该组件取决于MediaSource。在控件的顶部,我具有以下代码行(在全局范围内,而不是在组件内部)。

const mediaSource = 'MediaSource' in window ? new MediaSource() : null;

渲染组件时,如果mediaSource为null,则返回错误。这使对该组件的测试变得棘手。

有人知道如何模拟MediaSource以使我能够测试此组件吗?

谢谢

解决方法

您可以在测试之前定义window属性。

https://jestjs.io/docs/ru/manual-mocks#mocking-methods-which-are-not-implemented-in-jsdom

Object.defineProperty(window,'MediaSource',{
  writable: true,value: jest.fn().mockImplementation((params) => ({
    // MediaSource implementation goes here
    addEventListener: jest.fn(),})),});

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...