使用Mocha / Chai测试JS异常

时间:2013-09-20 21:07:06

标签: javascript coffeescript mocha chai

尝试测试一些使用Mocha / Chai抛出异常的代码,但没有运气,这是我试图测试的简单代码:

class window.VisualizationsManager

  test: ->
    throw(new Error 'Oh no')

这是我的测试:

describe 'VisualizationsManager', ->

  it 'does not permit the construction of new instances', ->

    manager = new window.VisualizationsManager

    chai.expect(manager.test()).to.throw('Oh no')

但是,当我运行规范时,测试失败并抛出异常。

Failure/Error: Oh no

我在这里做错了什么?

2 个答案:

答案 0 :(得分:35)

传递函数

chai.expect(manager.test).to.throw('Oh no');

使用匿名函数

chai.expect(() => manager.test()).to.throw('Oh no');

请参阅documentation on the throw method了解详情。

答案 1 :(得分:22)

这可能是因为您正在执行该功能,因此测试框架无法处理错误。

尝试类似:

chai.expect(manager.test.bind(manager)).to.throw('Oh no')

如果你知道你没有在函数中使用this关键字,我猜你也可以只传递manager.test而不绑定它。

此外,您的测试名称不反映代码的作用。如果它没有构建新实例,manager = new window.VisualizationsManager应该失败。