测试不会在CoffeeScript(和JS)中调用函数

时间:2012-03-03 21:21:02

标签: testing backbone.js coffeescript

我有一个名为render的函数,它在CoffeeScript中包含以下代码。这是在Backbone视图上,如果定义了afterRender函数,它只调用@afterRender() if @afterRender 函数,如下所示:

it 'calls afterRender when defined', ->
  called = false
  @view.afterRender = -> called = true
  @view.render()
  expect(called).toBeTruthy()

如果没有调用afterRender,我如何测试它?

这是积极的测试:

{{1}}

但是我试图想出一个好的方法来测试我的一切都失败了。

我正在使用sinon.js,所以如果你认为它有用,我可以使用它的间谍,嘲笑和存根。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用mock来测试两种情况 - 在第一种情况下调用它(您当前使用called变量手动执行的操作),并且它永远不会第二个叫:

第一种情况:

sinon.mock(@view).expects('afterRender').once()
@view.render()

第二种情况:

sinon.mock(@view).exepcts('afterRender').never()
@view.render()