javascript - 开玩笑:提供的元素或 ID 无效。(视频)
问题描述
在运行一个笑话覆盖测试时,我不断得到element or ID supplied is not valid. (videojs)
指向我的 JS 行:this.player = videojs(this.videoPlayerID, this.videoJSConfig);
. 我不确定我在测试中做错了什么或没有提供什么。
js
import videojs from 'video.js';
class IVSPlayer {
constructor(data) {
this.player = {};
this.registerIVSTech = data.ivsTech;
this.videoPlayerID = data.id;
this.videoJSConfig = data.config;
}
init() {
this.registerIVSTech(videojs);
this.videoJSConfig.techOrder = ['AmazonIVS'];
this.player = videojs(this.videoPlayerID, this.videoJSConfig);
return this.player;
}
}
export default IVSPlayer;
测试
/**
* @jest-environment jsdom
*/
import ivsPlayer from './../../../ivs-player';
import { VIDEO_PLAYER_ID } from '../../../asset-constants';
import { VIDEO_JS_CONFIG } from './../../../create-player';
import videojs from './../../../node_modules/video.js';
describe('#ivsPlayer', () => {
it('creates an instance of the IVS player', () => {
const registerIVSTech = jest.fn();
const player = new ivsPlayer({ id: VIDEO_PLAYER_ID, config: VIDEO_JS_CONFIG, ivsTech: registerIVSTech });
expect(player).toBeTruthy();
});
it('initializes the IVS player', () => {
jest.spyOn(ivsPlayer.prototype, 'init');
const registerIVSTech = jest.fn();
const player = new ivsPlayer({ id: VIDEO_PLAYER_ID, config: VIDEO_JS_CONFIG, ivsTech: registerIVSTech });
player.init();
player.videoJSConfig.techOrder = jest.fn().mockReturnValue(['AmazonIVS']);
player.registerIVSTech = jest.fn().mockReturnValue(player);
expect(player.init).toHaveBeenCalledTimes(1);
});
});
解决方案
推荐阅读
- flutter - 在 Flutter ThemeData 和 InputDecordation 中,focusColor 属性有什么作用?
- node.js - 从 HERE 反向地理编码 API 获取速度限制
- reactjs - 如何在没有 npm -g install 的情况下创建-react-app
- matrix - gnuplot 从统计矩阵给出错误的结果
- sql - 按月/年创建和关闭的记录数
- python - 使用 jnius 在 Kivy/Android 应用程序中打开日期设置
- angular - 如何使用 Angular 在 Electron 的新窗口中打开 component.html?
- java - 无法弄清楚如何让 java 运行时在标准 jdk9 运行时中加载工具的本地测试副本
- aws-cli - AWS json 输出解析
- git - 为 git 存储库中的每个文件配置编码以正确输出“git diff”