ジャスミンとガードを使用して、私のレール3.2アプリケーション用のエバーベースのフロントエンドをテストしようとしています。このために、私はジャスミネリシスとガードジャスミンを使用しています。セットアップは非常に簡単でシンプルで、いくつかのサンプル仕様を実行できます。エバーと一緒に遊ぶことになると、状況は狂ってしまいます。私はそのビデオリーダークラスをテストするという仕様を持っています。 loadVideoメソッドを呼び出すときは、対応するビデオDOM要素の値でvideoHeightプロパティとvideoWitdhプロパティを設定する必要があります。 ブラウザでjasmineを実行するとテストパスになりますが、ガードとファントムを使って実行すると失敗します。私は "640と等しいと期待されていない"と思った。私のDOM要素は、テストがphantomjで実行されたときに考慮されていないようです。ヘッドレステストガードとジャスミンを使用した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