我正在尝试验证咖啡脚本构造函数是否抛出异常(使用sinon和sinon-chai)。
class Animal
constructor: ->
throw "exception"
class Dog extends Animal
如何正确创建间谍以验证实例化Dog是否会引发异常?
答案 0 :(得分:2)
只需使用匿名函数在里面创建对象,就可以将expects
传递给它。到目前为止还没有需要的僧侣。
expect(-> new Animal()).to.throw(/message/)
请注意,如果你抛出一个简单的字符串,chai的throw
中的正则表达式总会通过。它只有在抛出Error对象时才能正常工作。无论如何,抛出真正的错误总是更好。
class Animal
constructor: ->
throw new Error('message') # only this will assert the regexp above
希望这有帮助。