javascript – 窥探sinon中的咖啡脚本构造函数

我试图验证一个咖啡脚本构造函数抛出一个异常(使用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

希望这可以帮助.

点赞