À 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!

Voulais juste jeter ce là-bas: j'ai été faire toThrowError n'est pas un échec de la fonction lors de l'utilisation du jasmin-node package npm. S'avère le Jasmin version utilisée est de 1,3 et ne prend pas en charge toThrowError. Utilisation toThrow(new Error ("erreur")) à la place.

OriginalL'auteur user3192178 | 2014-01-19