测试播放HTML视频

时间:2017-03-27 20:24:06

标签: javascript jquery video jasmine jasmine-jquery

我正在为一段遗留Javascript编写一些Jasmine测试。代码使用Slick.js并在其中包含以下事件处理程序:

display.on('afterChange', function(event, slick, currentSlide) {
  $currentSlide = jQuery(slick.$slides[currentSlide]);
  if ($currentSlide.hasClass('video')) {
    $currentSlide.find('video')[0].play();
  }
});

display是一个Slick轮播,因此在当前幻灯片更改后,我们要检查是否存在特定的类,如果找到它,请尝试在其中播放视频元素。

我希望能够测试在视频上触发幻灯片转换时,会导致视频自动播放。

我有以下内容:

it("should autoplay a video when you click the thumbnail", function(done) {
  var thumb = mediaThumbnailFor(this.richMediaVideo.id, this.modal);
  var videoContainer = mediaDisplayFor(this.richMediaVideo.id, this.modal);
  var video = $('video', videoContainer)[0];

  thumb.trigger('click', function() {
    done();
    expect(video.paused).toEqual(false);
  });
});

在此实例中单击thumb将触发正确的代码路径,但我无法通过预期。上面的代码在done()被解雇之前超时。

我也想尽可能多地忽略实现细节,所以我试图不在测试中引用Slick,理想情况下我不想对现有的实现做任何改动(直到我有一个正常运行的测试用例)。

我是否采用了正确的方法进行此测试?还有更好的方法吗?

0 个答案:

没有答案