qunit - проверить сообщение об исключении? - PullRequest
10 голосов
/ 06 мая 2011

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

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 только проверяет, что возникла ошибка.Любой способ проверить фактическое содержание выданного исключения?

1 Ответ

18 голосов
/ 06 мая 2011

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

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'
);
...