À l'aide de toThrowError au Jasmin
Je suis en train de travailler sur une application qui fait un usage intensif de JavaScript. J'ai besoin de l'unité de tester ce code. Dans un effort pour le faire, je suis plutôt de Jasmin.
Certains de mon code JavaScript jette Erreur JavaScript les objets. Ces objets affecter des valeurs pour le message et le nom de la propriété de l'objet d'Erreur. - Je attribuer un type d'exception au nom de la propriété. Par exemple, parfois le nom est "OutOfRangeException", parfois, de ses "ArgumentException", etc.
Comment puis-je utiliser le toThrowError fonction dans le Jasmin cadre de tester si la levée d'erreur a un nom spécifique? Actuellement, mon JavaScript se présente comme suit:
function getRandomNumber(max) {
if ((!isNaN(parseFloat(max)) && isFinite(max)) === false) {
var error = new Error('You must provide a number');
error.name = 'ArgumentException';
throw error;
}
if ((max === null) || (max < 1) || (max > 100)) {
var error = new Error('The maximum value must be greater than 0 and less than 100.');
error.name = 'ArgumentOutOfRangeException';
throw error;
}
return Math.floor(Math.random() * max) + 1;
}
function ArgumentException(message) {
this.name = 'ArgumentException';
this.message = message || '';
}
ArgumentException.prototype = new Error();
ArgumentException.prototype.constructor = ArgumentException;
Comment puis-je écrire un Jasmin test qui vérifie que la ArgumentException erreur ou un ArgumentOutOfRangeException erreur?
Merci!
OriginalL'auteur user3192178 | 2014-01-19
Vous devez vous connecter pour publier un commentaire.
Exception de vérification pour une fonction avec le paramètre n'est pas pris en charge dans le jasmin. Mais vous pouvez utiliser la solution de contournement ci-dessous pour surmonter cette limitation, et de tester vos fonctions.
toThrowError
matcher prend 1 ou 2 paramètresExemple pour vérifier fondée sur une exception de type:
Reportez-vous lien pour les différents types d'exceptions.
Message D'Erreur Personnalisé
Mentionnées ci-dessous est extrait donne un exemple pour l'utilisation des messages d'erreur personnalisés.
je l'ai mise à jour de répondre à votre demande.
Merci pour la mise à jour. Vont que fonctionnent vraiment? Quand je l'ai essayé, j'ai une erreur qui dit: "Erreur: Attendu n'est pas une Erreur, chaîne ou expression régulière.". Ou suis-je en train de faire quelque chose de mal sur ma fin? Merci!!!!
j'ai essayé avec le code jasmine2.0 et alors seulement la mise à jour de la réponse . Êtes-vous en utilisant le même code que c'est?
Je suis en utilisant le même code. J'ai utilisé le code dans le navigateur Chrome. Est ce que le problème?
OriginalL'auteur user3037143
Si aimerions passer votre test dès que votre méthode renvoie une Erreur. Ensuite, vous pouvez utiliser
try-catch
bloc et lorsque vous atteignez lacatch
bloc, vous attendez de votre test à passer.OriginalL'auteur user2804070