【问题标题】:qunit - test exception message?qunit - 测试异常消息?
【发布时间】:2011-08-20 08:41:44
【问题描述】:

所以 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'
);

理想情况下,此测试会失败,因为异常消息是“缺少参数”并且我希望它是“缺少 arg”,但它通过了,因为 qunit 仅检查是否引发了错误。有什么方法可以检查抛出的异常的实际内容吗?

【问题讨论】:

  • QUnit 的throws 不是这样做的吗?
  • throws 有效,但由于某种原因,它不会验证异常消息。

标签: javascript unit-testing exception-handling tdd qunit


【解决方案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'
);

【讨论】:

  • 是的,我独立找到了这个——据我所知,这是一个未记录的功能
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-25
  • 1970-01-01
  • 2015-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-26
相关资源
最近更新 更多