我有一个山羊类(class):
class Goat
constructor: (@headbutt) ->
@isCranky = true
approach: ->
if @isCranky
@headbutt()
我想编写一个 Mocha 测试来断言,如果 isCranky 为 true 并且调用了 method,则调用 headbutt() 。
我能找到的唯一解释是 Ruby。尝试翻译,但失败了。我如何断言调用了正确的函数?我认为我可以用一种hacky方式解决它,但宁愿学习正确的方式。建议?
最佳答案
怎么样?
describe 'Goat', ->
it 'should call headbutt when approached', ->
headbuttCalled = no
headbutt = -> headbuttCalled = true
goat = new Goat headbutt
goat.approach()
assert headbuttCalled
如果您发现自己多次重复这种测试函数是否被调用的模式,您可能需要使用类似 SinonJS 的内容。 ,它提供了一个“ spy ”结构:
headbutt = sinon.spy()
goat = new Goat headbutt
goat.approach()
assert headbutt.called
关于node.js - 如何断言函数被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14449453/