2016-11-18 74 views
0

使用RSpec的護欄-3.5.2,騷靈-1.11.0和水豚-2.10.1Rspec的,騷靈,水豚不與音頻文件的工作

我創建了一個音頻對象:

Bart.pumpAudio = new Audio("assets/audio/bart/pump.mp3"); 

我有一個按鈕,按下

<div id="pump-button" class="button">Pump</div> 

$("#pump-button").click(function() { 
    ... 
    Bart.pumpAudio.play(); 
    ... 
}); 

當我在瀏覽器中運行它工作時播放聲音,但我得到的錯誤試圖通過rspec的執行測試時:

測試代碼:

page.find("#pump-button").trigger('click') 

測試錯誤:

​​

如何解決這個任何想法?

回答

0

添加該到我的js文件的頂部似乎解決了我的問題

var Audio = function() { 
    return { 
     load: function() {}, 
     play: function() {} 
    } 
} 

Source

+0

鬼驅人使用PhantomJS作爲其「瀏覽器」。由於PhantomJS不支持音頻/視頻,因此您無法測試音頻/視頻播放 - 您所做的所提供的功能對音頻元素不做任何存根操作。而不是將它添加到您的應用程序JS中,最好將它放在一個單獨的JS文件中,該文件僅用於測試並使用Poltergeist:extensions選項加載它 - https://github.com/teampoltergeist/poltergeist#customization - 請參閱另外:http://collectiveidea.com/blog/archives/2014/01/21/mocking-html5-apis-using-phantomjs-extensions –