4

我正在尝试验证咖啡脚本构造函数是否引发异常(使用 sinon 和 sinon-chai)。

class Animal
  constructor: ->
    throw "exception"

class Dog extends Animal

如何正确创建间谍来验证实例化 Dog 是否引发异常?

4

1 回答 1

2

只需使用匿名函数在其中创建您的对象,这样您就可以将expects. 到目前为止不需要诗乃。

expect(-> new Animal()).to.throw(/message/)

请注意,throw如果您抛出一个简单的字符串,chai 中的正则表达式总是会通过。只有在抛出 Error 对象时它才能正常工作。无论如何,抛出真正的错误总是更好。

class Animal
  constructor: ->
    throw new Error('message') # only this will assert the regexp above

希望这可以帮助。

于 2012-12-18T21:21:02.227 回答