Я работаю над приложением, которое сильно использует JavaScript. Мне нужно выполнить тестирование этого кода. Стремясь сделать это, я полагаюсь на Жасмин.Использование toThrowError в Jasmine
Некоторые из моих JavaScript-кода вызывают JavaScript-объекты Error. Эти объекты присваивают значения атрибуту message и name объекта Error. Я назначаю тип исключения для свойства name. Например, иногда имя имеет значение «OutOfRangeException», иногда его «ArgumentException» и т. Д.
Как использовать функцию toThrowError в структуре Jasmine, чтобы проверить, имеет ли заброшенная ошибка определенное имя? В настоящее время мой JavaScript выглядит следующим образом:
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;
Как я могу написать тест жасмина, который проверяет наличие ошибки ArgumentException или ошибку ArgumentOutOfRangeException?
Спасибо!
Просто хотел выбросить его там: я получал toThrowError - это не сбой функции при использовании пакета npm для жасмина-узла. Оказывается, версия Jasmine используется 1.3 и не поддерживает toThrowError. Используйте toThrow (новая ошибка («ошибка»)). – ltrainpr