无头JavaScript测试HTML5音频/视频

前端之家收集整理的这篇文章主要介绍了无头JavaScript测试HTML5音频/视频前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道还有很多其他类似的问题,但答案并没有解决这个问题.

我在我的网站上使用了一个JavaScript文件,该文件使用HTML 5 Web Audio并希望对其进行单元测试.

我已经看过将Qunit与PhantomJS一起使用,在你说出任何我知道Phantom不支持它的情况之前(http://phantomjs.org/supported-web-standards.html)但是我想知道是否有办法解决这个问题?

在浏览器中使用QUnit进行测试可以按预期工作,但我不想每次都使用浏览器对其进行测试,我希望它在服务器上自动化.

其中一个测试失败的示例:

QUnit.test("isPlaying",function(assert){

    // true case
    My.Sound.play("background");
    assert.ok(My.Sound.isPlaying("background"),"The background audio is playing");

    // false case
    My.Sound.pause("background");
    assert.ok(!My.Sound.isPlaying("background"),"The background audio is not playing");
});

解决方法

正如@jakerella已经指出的那样,测试第三方apis是没有意义的.只关注您的功能.在这种情况下,您应该测试每当您想要播放/暂停声音时,您为声音对象(播放/暂停)调用正确的api方法,这应该是原始实现的存根.
QUnit.test("play button should play sound when clicked",(assert) => {
    const button =  someButton; //...get your button / play trigger here
    const playStub = stub(My.Sound,'play');

    //trigger button click

    assert.ok(playStub.called);
});

使用QUnit查看here的存根功能.

原文链接:https://www.f2er.com/js/157319.html

猜你在找的JavaScript相关文章