我有一个JavaScript(响应)视频组件,该组件取决于MediaSource。在控件的顶部,我具有以下代码行(在全局范围内,而不是在组件内部)。
const mediaSource = 'MediaSource' in window ? new MediaSource() : null;
渲染组件时,如果mediaSource为null,则返回错误。这使对该组件的测试变得棘手。
有人知道如何模拟MediaSource以使我能够测试此组件吗?
谢谢
答案 0 :(得分:0)
您可以在测试之前定义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(),
})),
});