Qunit avec Ajax, QUnit réussit les tests échoués
Je suis à la recherche dans QUnit pour JavaScript, des tests unitaires. Je suis dans une situation étrange où je suis de la vérification de la valeur retournée par l'appel Ajax.
Pour le test suivant, je suis tente délibérément à l'échec.
//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");
});
});
Mais il finit par le passage de tous les temps. Voici la getPersons méthode de faire de l'appel Ajax.
function getPersons(callback) {
var persons = null;
$.ajax({
type: "POST",
dataType: "json",
data: {},
contentType: "application/json",
url: "AjaxService.asmx/GetPersons",
success: function(response) {
callback(response);
}
});
}
source d'informationauteur azamsharp
Vous devez vous connecter pour publier un commentaire.
Le démarrage et l'arrêt à l'aide de la QUnit bibliothèque semble être au travail!
Le vrai problème ici n'est pas besoin d'appeler la méthode start() et stop() méthodes - en fait, vous pourriez avoir des ennuis à l'aide de cette approche, si vous n'êtes pas prudent dans l'appel de stop() de nouveau à la fin de votre rappel si vous avez d'autres .ajax (). Ce qui signifie alors que vous vous trouvez dans certains gronda désordre d'avoir à garder une trace si tous les rappels ont été licenciés pour savoir si vous avez toujours besoin d'appeler stop() de nouveau.
La racine du problème implique le comportement par défaut des requêtes asynchrones - la solution la plus simple est de faire de la .ajax() demande de se produire de façon synchrone par le réglage de la async valeur false à la propriété:
Même encore, la meilleure approche est de permettre le comportement asynchrone et utiliser la bonne méthode de test invocation: asyncTest(). Selon les docs "Asynchrone tests sont mis en file d'attente et d'exécuter l'une après l'autre. Équivalent à l'appel d'un test normal() et immédiatement à l'appel de stop()."
Il y a beaucoup de qunit test de mon projet. comme:
ive fait quelques qunit tests avec l'ajax. son pas assez. la meilleure chose que je pouvais venir avec est l'arrêt de l'essai lors de l'ajax est déclenché, et de commencer à nouveau dans le succès de rappel. (à l'aide de la méthode start() et stop()) méthodes. Cela signifiait une requête ajax à un moment, mais je pourrais vivre avec ça. Bonne chance