Ich bin neu hier. Ich habe die alten Posts über QUnit und AJAX gelesen, konnte aber immer noch keine Ahnung bekommen. Ich habe eine Funktion, die ein AJAX-Aufruf funktioniert und die Webseite manipulieren basierend auf dem Ergebnis:QUnit Test AJAX Rückruf Ergebnis
myObj.prototype.getName = function() {
$.get('/url/to/server/', {id: this.id})
.done(function(data) {
var name = JSON.parse(data);
var html = '<p>' + id.toString() + ': ' + name + '</p>';
$('.content').append(html);
});
};
Ich möchte testen, ob diese ganze Funktion erfolgreich ist. Nach QUnit der 2.x cookbook, ich tat.
QUnit.test('myObj.getName', function(assert) {
var done = assert.async();
var obj = new myObj(1); // 1 is the ID
obj.getName();
setTimeout(function() {
assert.equal($('.content').html(), '<p>1: name-of-1</p>');
done();
});
});
Die Funktion selbst arbeitet und druckt den Namen auf der Webseite, aber in der QUnit Test, $ ('Inhalt') html() ist None. Es scheint, dass der Test ausgelöst wird, bevor die Callback-Funktion abgeschlossen ist.
Irgendwelche Ideen dazu? Vielen Dank!