2015-01-09 2 views
7

다른 비슷한 질문이 많이 있다는 것을 알고 있지만 답변으로는이 문제를 해결할 방법이 없습니다.헤드리스 자바 스크립트 테스트 HTML5 오디오/비디오

내 웹 사이트에서 HTML 5 Web Audio를 사용하는 자바 스크립트 파일을 사용하고 있으며이를 테스트하고 싶습니다. 내가 PhantomJS과 및 전에 QUnit을 사용하여 살펴 보았다

당신은 그러나 나는이 주위에 방법이 있는지 알고 싶어 아무것도 내가 팬텀를 지원하지 않습니다 ( http://phantomjs.org/supported-web-standards.html을) 알고 라고?

브라우저에서 QUnit을 사용하여 테스트하는 것은 예상대로 작동하지만 브라우저를 사용하여 매번 테스트하지 않으려 고 서버에서 자동화되도록하고 싶습니다.

실패 테스트 중 하나의 예 : @jakerella 이미 지적한 바와 같이

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"); 
}); 
+1

QUnit이 SlimerJS로 실행되는지는 모르지만 SlimerJS + xvfb로 수행 할 수 있습니다. –

+2

전체 웹 오디오 API를 조롱 할 수 있지만 과도한 것처럼 보일 수 있습니다. 여기서 테스트하는 것은 HTML5 Web Audio 작품이며 사용자 코드는 아닙니다. – jakerella

+0

SlimerJS 및 xvfb로 자동화 된 테스트 관련 : https://askubuntu.com/questions/430247/which-packages-should-be-installed-on-ubuntu-server-so-it-will-beable-to- play-v/430251 # 430251 –

답변

0

, 그것은 타사 API를 테스트 할 말이 없다. 기능에만 집중하십시오. 이 경우 사운드를 재생/일시 중지 할 때마다 원래 구현의 스텁이어야하는 사운드 객체에 대한 올바른 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을 가져 가라.