我是 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");
});
测试应该通过,因为错误被抛出。