间谍在sinon的咖啡脚本建设者

时间:2012-11-22 21:08:09

标签: javascript testing coffeescript sinon chai

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

class Animal
  constructor: ->
    throw "exception"

class Dog extends Animal

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

1 个答案:

答案 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

希望这有帮助。