【发布时间】:2012-11-22 21:08:09
【问题描述】:
我正在尝试验证咖啡脚本构造函数是否引发异常(使用 sinon 和 sinon-chai)。
class Animal
constructor: ->
throw "exception"
class Dog extends Animal
我如何正确创建一个间谍来验证实例化 Dog 是否引发异常?
【问题讨论】:
标签: javascript testing coffeescript sinon chai
我正在尝试验证咖啡脚本构造函数是否引发异常(使用 sinon 和 sinon-chai)。
class Animal
constructor: ->
throw "exception"
class Dog extends Animal
我如何正确创建一个间谍来验证实例化 Dog 是否引发异常?
【问题讨论】:
标签: javascript testing coffeescript sinon chai
只需使用匿名函数在其中创建您的对象,因此您可以将expects 传递给它。到目前为止不需要 sinon。
expect(-> new Animal()).to.throw(/message/)
请注意,如果你抛出一个简单的字符串,chai 的throw 中的正则表达式总是会通过。只有在抛出 Error 对象时它才能正常工作。无论如何,抛出真正的错误总是更好。
class Animal
constructor: ->
throw new Error('message') # only this will assert the regexp above
希望这会有所帮助。
【讨论】: