我正在学习JavaScript单元测试的QUnit。我现在处于一个奇怪的情况,需要检查从Ajax调用返回的值。
对于以下测试案例,我故意尝试使其失败。
// test to check if the persons are returned!
test("getPersons", function() {
getPersons(function(response) {
// persons = $.evalJSON(response.d);
equals("boo", "Foo", "The name is valid");
});
});
但最终它总是通过的。这是进行Ajax调用的getPersons方法。
function getPersons(callback) {
var persons = null;
$.ajax({
type: "POST",
dataType: "json",
data: {},
contentType: "application/json",
url: "AjaxService.asmx/GetPersons",
success: function(response) {
callback(response);
}
});
}
QUnit.test
的第二个参数),这样当不是所有内容都按时调用时,就更容易捕获。否则,如果在发送所有断言之前太早调用了“start”,则可能会通过测试。 - Timo Tijhof