TDD を理解するdom
要素を左に移動するための簡単なテスト スーツを作成しました。
アニメーションが終了するまで待つ必要があるアニメーションをテストしています。モンキーパッチのように感じ、qUnitのサンプルフォームを使用することになったので、プロミスを使用したくありませんでした:
test("move 50", function () {
//Creates an element for testing and attaches to document
var el = appendToTest();
ok(el.css('left') == "auto", "element 0");
stop();
moveLeft(el, 50, 100);
setTimeout(function () {
equal(el.css("left"), "50px");
start();
}, 101);//Timeout duration
});
テストはすべての jQuery バージョンで失敗しますが、2.x (edge)
failed
Expected:
"50px"
Result:
"49.69220733642578px"
Diff:
"50px" "49.69220733642578px"
タイムアウト期間を十分に増やすとテストに合格するので、左のプロパティを調べる前にアニメーションが終了しなかったと考えました。
しかし、これは正しくないようです。どのくらい待つかを推測する必要があります。これを行うより良い方法はありますか?