2016-11-18 4 views
0

Mit rspec-Schienen-3.5.2, Poltergeist-1.11.0 und Capybara-2.10.1Rspec, Poltergeist, Capybara nicht mit Audio-Dateien arbeiten

ich ein Audio-Objekt erstellt:

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

ich habe eine Schaltfläche, die einen Ton spielt, wenn

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

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

gedrückt funktioniert es, wenn ich in einem Browser laufen, aber ich Fehler beim Versuch Test durch rspec auszuführen:

Testing-Code:

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

Testing Fehler:

TypeError: 'undefined' is not a function (evaluating 'Bart.pumpAudio.play()') 

Alle Ideen, wie dieses Problem zu lösen ??

Antwort

0

dies meiner js Datei zu Anfang Hinzufügen schien mein Problem

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

Source

+0

Poltergeist verwendet PhantomJS als "Browser" zu lösen. Da PhantomJS kein Audio/Video unterstützt, können Sie die Audio-/Videowiedergabe nicht testen. Was Sie getan haben, wird vorausgesetzt, dass Sie nichts für Audio-Elemente tun. Anstatt es zu Ihren JS-Apps hinzuzufügen, sollten Sie es lieber in eine separate JS-Datei einfügen, die nur zum Testen und Verwenden der Option "Poltergeist: extensions" zum Laden verwendet wird - https://github.com/teampoltergeist/poltergeist#customization - Siehe auch: http://collectiveidea.com/blog/archives/2014/01/21/mocking-html5-apis-using-phantomjs-extensions –

Verwandte Themen