Подтвердить что ты не робот

Qunit - тестовое сообщение об исключении?

Итак, QUnit предоставляет утверждение "raise", чтобы проверить, выбрано ли исключение. Есть ли способ протестировать фактическое сообщение, созданное исключением? Например, скажем, что у меня есть эта функция:

throwError = function(arg) {
  var err = new Error();
  if (typeof arg === 'undefined') {
    err.message = 'missing parameter';
    throw err;
  }
}

Я хотел бы написать что-нибудь в этих строках:

raises(
  function(){throwError();},
  Error.message,
  'missing arg'
);

В идеале этот тест завершится неудачно, потому что сообщение об исключении является "отсутствующим параметром", и я ожидаю, что это будет "отсутствующий аргумент", но он пройдет, потому что qunit только проверяет, что была поднята ошибка. Любой способ проверить фактическое содержимое брошенного исключения?

4b9b3361

Ответ 1

Я понял ответ, разместив здесь, если другие считают это полезным. С учетом этой функции:

throwError = function(arg) {
  var err = new Error();
  if (typeof arg === 'undefined') {
    err.message = 'missing parameter';
    throw err;
  }
}

Тест будет выглядеть следующим образом:

raises(
  function(){
    throwError();
  },
  function(err) {
    return err.message === 'missing arg';
  },
  'optional - label for output here'
);