断言使用new执行构造函数抛出错误

时间:2013-12-12 07:29:16

标签: javascript mocha chai

将Chai与Mocha一起使用时,我会使用什么语法断言在使用new关键字执行构造函数时会抛出错误?我使用以下内容时出错:

assert.throw(new SomeFunction, Error);

返回:

AssertionError: expected { Object () } to be a function

1 个答案:

答案 0 :(得分:9)

将函数传递给assert.throw

assert.throw(function () {
    new SomeFunction()
}, Error);

你没有工作的原因是new SomeFunction被解释为new SomeFunction()并在assert.throw执行之前执行。因此,您最终使用assert.throw的实例运行SomeFunction,而不是使用实例化对象的函数。