ページ内の特定のポイントまでスクロールして、そのページについてのみアサートできるようにするにはemberJs受け入れテストが必要です。Ember受け入れテストandThen()は、スクロールイベントが完了するまで待つことはありません
これらの機能の両方、
Ember.$('body').scrollTop(1000);
window.scroll(0,1000);
体scrollTopスプライトの位置が108であること
andThen(()=>{
console.log('body', Ember.$('body').scrollTop());
})
プリントアウト続いてそれは1000
であることが必要body scrollTopが1000である瞬間までに私が得ることができる唯一の方法は、これまでこのコールバックを使用することです。
Ember.$('body').animate({scrollTop: 1000},() => {
console.log('body', Ember.$('body').scrollTop());
staticWiz.assertHasGoToTopButton(true);
});
ここで問題となるのは、このコールバックが発生する時点ではテスト対象が存在しないことです。私は何も断言できない。
私はこのコールバックをassert.async()およびdone()を使用しようとすると、それは身体scrollTopスプライト()が108であるとき、それは途中で火作る:
const done = assert.async();
Ember.$('body').animate({scrollTop: 1000},() => {
console.log('body', Ember.$('body').scrollTop());
staticWiz.assertHasGoToTopButton(true);
done();
});
私は定期的なタイムアウトを設定した場合スクロール位置を確認する方法として、108の同じ位置に永久に留まります。
const done = assert.async();
window.scroll(0, 1000);
const checkScroll =() => {
console.log('body', Ember.$('body').scrollTop());
if (Ember.$('body').scrollTop() === 1000) {
staticWiz.assertHasGoToTopButton(true);
done();
return;
}
setTimeout(checkScroll, 1000);
};
checkScroll();
So.何か案は? Emberjsの受け入れテストで特定の番号を必要とするだけでスクロールすることはできません。
更新:Coworkerは、テストページ内のネストされたアプリケーション本体の代わりに、テストページの本文がテストによってスクロールされていることを認識しました。私たちのアプリの 'body'スクロールウォッチャーは、テストページのアプリウィンドウ内のスクロールを受け取りません。そこからどこへ行くかわからない。