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 ??
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 –