了解 TDD 我编写了一个简单的测试套件,用于将dom
元素移动到左侧。
我测试动画我需要等待它们完成。我不想使用 Promise,因为它感觉就像猴子修补,我最终使用了 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"
增加超时持续时间足以使测试通过,所以我认为动画在被探测到 left 属性之前没有完成。
但这似乎不对。不得不猜测要等多久。有一个更好的方法吗?