Я совсем новичок в модульном тестировании. Может ли кто-нибудь помочь мне с тестированием этих двух функций в жасмине?
keyEvent(event: KeyboardEvent) {
myPlayer = videojs('myPlayerID');
const rewindAmount = 10;
if (event.keyCode === KEY_CODE.RIGHT_ARROW) {
myPlayer.trigger('forward', {'amount': rewindAmount});
}
if (event.keyCode === KEY_CODE.LEFT_ARROW) {
myPlayer.trigger('rewind', {'amount': rewindAmount});
}
}
loadScript(media, id) {
const script = document.createElement('script');
script.src =
"https://players.brightcove.net/" +
playerData.accountId +
"/" +
playerData.playerId +
"_default/index.min.js";
const body = document.getElementById('videoBody');
body.appendChild(script);
script.onload = () => {
this.callback(media, id);
}
}
callback(media, id) {
}
Это то, что я имею до сих пор. По-видимому, они вообще не будут покрывать какой-либо из этих выделенных кодов.
it('should call forward and rewind when keyEvent', () => {
myPlayer = videojs('myPlayerID');
const event = new KeyboardEvent("key",{
"key": "ArrowLeft"
});
const spy1 = spyOn(myPlayer, 'trigger').withArgs('rewind', {'amount': 5}).and.callThrough();
component.keyEvent(event);
myPlayer.trigger('rewind', {'amount': 5});
expect(spy1).toHaveBeenCalledWith('rewind', {'amount': 5});
});
it('should loadScript', ()=> {
const div = '<div id="videoBody" style="padding-top: 56.25%;">\n' +
'\n' +
'</div>';
spyOn(component, 'loadScript');
component.loadScript(fakeVideo,6117575484001);
const script = document.createElement('script');
script.src =
"https://players.brightcove.net/" +
playerData.accountId +
"/" +
playerData.playerId +
"_default/index.min.js";
fixture.detectChanges();
const element = fixture.nativeElement.querySelector('#videoBody');
expect(element).toEqual(div);
});
Ниже приводится вывод.
document.create / получить отчет о покрытии кода
Отчет о покрытии кода myPlayer.trigger