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