我正在使用QUnit 2.0.1对现有代码库进行单元测试。我有一个函数,它进行ajax调用,然后启用一个按钮并设置一个布尔值。我正在尝试编写一个QUnit测试,断言在调用函数后按钮已启用且布尔值为false。
我使用ajax调用的函数:
self.saveComment = function() {
if(self.isEditing())
{
$('#saveCommentButton').attr('disabled', 'disabled');
var comment = self.newComment();
var data = {
newCommentText : comment,
objectId: objectId,
objectType : objectTypeId
};
$.ajax({
type: "POST",
url: "addBOComment.action",
data: data,
success: function(comments){
self.comments(comments);
$('#saveCommentButton').attr('enabled', 'enabled');
self.isEditing(false);
}
});
}
};
我的QUnit测试:
QUnit.test("test saveComment() - async", function(assert){
$('#qunit-fixture').append('<input type="button" id="saveCommentButton" disabled="disabled"/>')
model.isEditing(true);
model.newComment("qunit test for comments");
var done = assert.async();
window.setTimeout(function() {
model.saveComment(); //function with ajax call
assert.equal(model.isEditing(), false, 'success');
assert.equal($('#saveCommentButton').attr("enabled"), "endabled", 'success');
done();
}, 150);
});
测试运行,但是从未调用成功,因此我的按钮被禁用,我的布尔值仍然是真的。我做错了什么?