代码:
var obj = {
check: 0,
foo: function() {
...
jQuery.ajax({
contentType : "application/json",
type: "POST",
async: true,
...,
success: function(data) {
check = 1;
},
error: function(error) {
}
});
}
}
测试代码:
QUnit.test("Test asynchronus, function(assert) {
obj.foo();
assert.equal(obj.check, 1, "The check should be equal 1");
});
使用当前代码,测试用例失败,因为断言在ajax的回调成功之前运行。
如何在不更改代码的情况下修复测试代码(例如:将async
更改为false
)。 assert.async
是我问题的解决方案吗?