jasmine과 guard를 사용하여 Ember 기반의 프론트 엔드에서 레일 3.2 애플리케이션을 테스트하려고합니다. 이를 위해 jasminerice와 guard-jasmine, phantomjs를 사용합니다. 설정은 매우 쉽고 간단했으며 몇 가지 샘플 사양을 실행할 수 있습니다. 엠버와 함께 노는 것에 관해서는, 모든 것이 화가납니다. 나는 비디오 리더 클래스를 테스트하는 스펙을 가지고있다. loadVideo 메서드를 호출 할 때 videoHeight 및 videoWitdh 속성을 해당 비디오 DOM 요소의 값으로 설정해야합니다. 브라우저에서 jasmine을 실행하면 테스트가 통과하지만 가드와 팬텀을 실행하면 실패합니다. 나는 "640과 동등한 것으로 예상되지 않음"을 얻었다. phantomjs에서 테스트를 실행할 때 내 DOM 요소가 고려되지 않은 것으로 보입니다.헤드리스 테스팅 Ember 애플리케이션 (가드와 자스민)
describe "VideoReader", ->
it "loads video from video DOM element", ->
videoDOM = Ember.$("<video width='640' height='480'><source src='/test.mp4'></source></video>")[0];
player = Topper.VideoReader.create();
player.loadVideo(videoDOM);
videoHeight = player.get('videoHeight');
videoWidth = player.get('videoWidth');
expect(videoHeight).toEqual(480);
expect(videoWidth).toEqual(640);
스펙이 올바르게 작성 되었습니까?
내 loadVideo 방법처럼 테스트 프레임 워크에서 비동기 테스트 기능을 사용 모양은 다음과 같습니다. loadVideo : function (videoDOM) { this.set ('videoHeight', videoDOM.height); this.set ('videoWidth', videoDOM.width); }, – jrabary
'loadVideo' 호출을'Ember.run (function() {player.loadVideo (videoDOM);})에 랩핑 해 보았습니다. – pangratz
링크를 제공해 주셔서 감사합니다. – pjmorse