我有一个名为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,所以如果你认为它有用,我可以使用它的间谍,嘲笑和存根。
有什么想法吗?
答案 0 :(得分:0)
您可以使用mock来测试两种情况 - 在第一种情况下调用它(您当前使用called
变量手动执行的操作),并且它永远不会第二个叫:
第一种情况:
sinon.mock(@view).expects('afterRender').once()
@view.render()
第二种情况:
sinon.mock(@view).exepcts('afterRender').never()
@view.render()