10

そのため、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'
);

理想的には、例外メッセージが「missing parameter」であり、「missing arg」であるため、このテストは失敗しますが、qunitはエラーが発生したことを確認するだけなので、合格します。スローされた例外の実際の内容を確認する方法はありますか?

4

1 に答える 1

18

私は答えを見つけ、他の人がそれが役に立つと思う場合に備えてここに投稿しました。この関数が与えられた場合:

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'
);
于 2011-05-06T18:30:32.963 に答える