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

Spe*_*age 4 javascript mocha.js chai

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

assert.throw(new SomeFunction, Error);

返回:

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

Lou*_*uis 10

将函数传递给assert.throw:

assert.throw(function () {
    new SomeFunction()
}, Error);
Run Code Online (Sandbox Code Playgroud)

你没有工作的原因是在执行之前new SomeFunction被解释为new SomeFunction()assert.throw执行.所以你最终运行assert.throw的是一个实例的对象SomeFunction,而不是一个实例化对象的函数.