2012-11-22 72 views
4

我试图验证咖啡脚本构造函数抛出异常(使用sinon和sinon-chai)。在sinon的咖啡脚本构造函数间谍

class Animal 
    constructor: -> 
    throw "exception" 

class Dog extends Animal 

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

回答

2

只需使用一个匿名函数在里面创建你的对象,所以你可以传递它expects。到目前为止还没有需要的。

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

当心,如果你把一个简单的字符串,在柴氏throw正则表达式总是通过。只有在抛出Error对象时它才能正常工作。无论如何,抛出真正的错误总是更好。

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

希望这会有所帮助。

+0

这没有奏效。抛出的异常杀死了测试.. – bibs