我正在将
videojs-cmcd
与 videojs
集成到我的项目中,我已按照此 READMe 文件中提供的步骤进行操作。在浏览器中运行应用程序时一切正常,cmcd 数据按预期在 API 中传递。但是当我尝试为我的更改编写单元测试用例时,我收到错误videojs__default.default.getPlugin is not a function
。
Test suite failed to run
TypeError: videojs__default.default.getPlugin is not a function
1 | import React, { useRef, useEffect, useState } from 'react';
2 | import videojs from 'video.js';
> 3 | import '@montevideo-tech/videojs-cmcd';
| ^
4 | import { IconButton, useMediaQuery } .....
at Object.<anonymous> (../../node_modules/@montevideo-tech/videojs-cmcd/dist/videojs-cmcd.cjs.js:1427:44)
at Object.require (src/video-player/components/video/VideoPlayer.tsx:3:1)
at Object.<anonymous> (src/video-player/components/video/__tests__/VideoPlayer.test.tsx:5:1)
这是打字稿错误
TypeError
。但我找不到 videojs-cmcd 的 @types/..
定义。我该如何解决这个问题?有什么解决办法吗?
我解决了这个问题,但在 setupTests.ts 文件中添加了以下模拟
jest.mock('@montevideo-tech/videojs-cmcd', () => ({
videojs__default: {
default: {
getPlugin: jest.fn(),
}
}
}));
这个 setupTests.ts 在 jest.config.json 中配置如下
"setupFilesAfterEnv": ["<rootDir>/src/setupTests.ts"]