4

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

assert.throw(new SomeFunction, Error);

这将返回:

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

4

1 回答 1

10

将函数传递给assert.throw

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

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

于 2013-12-12T11:28:42.977 回答