使用new关键字执行构造函数时,如何断言会抛出错误?

4
使用Chai和Mocha,如果要断言在使用new关键字执行构造函数时会抛出错误,应该使用什么语法呢?当我使用以下代码时会出现错误:
assert.throw(new SomeFunction, Error);
这会返回以下结果:
AssertionError: expected { Object () } to be a function
1个回答

10

将一个函数传递给assert.throw:

assert.throw(function () {
    new SomeFunction()
}, Error);
你的代码没有生效的原因是 new SomeFunction 被解释为 new SomeFunction() 并在 assert.throw 执行之前被执行了。所以你最终会用一个 SomeFunction 的实例对象来运行 assert.throw,而不是一个用于实例化对象的函数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接