Qunit と単体テストは初めてです。
次の関数を何をどのようにテストするかを理解しようとしています。現時点ではあまり機能しませんが、間違った値を渡すとエラーがスローされることを主張したかったのです。
function attrToggle (panel, attr) {
'use strict';
if (!panel) { throw new Error('Panel is not defined'); }
if (!attr) { throw new Error('Attr is not defined'); }
if (typeof panel !== 'string') { throw new Error('Panel is not a string'); }
if (typeof attr !== 'string') { throw new Error('Attr is not a string'); }
if (arguments.length !== 2) { throw new Error('There should be only two arguments passed to this function')}
};
これらの条件のいずれかが満たされない場合にエラーがスローされることをアサートするにはどうすればよいですか?
Qunit の「レイズ」アサーションを見ようとしましたが、誤解していると思います。私の解釈では、エラーがスローされた場合、テストはパスします。
したがって、次のようなものをテストした場合:
test("a test", function () {
raises(function () {
throw attrToggle([], []);
}, attrToggle, "must throw error to pass");
});
エラーがスローされるため、テストは成功するはずです。