我想窥探一个用作点击处理函数的函数。该函数在闭包的构造函数中定义。Jasmine间谍不能在构造函数中定义的函数上工作
var viewModel = function(){
var viewModel = function(){
var _this = this;
_this.internalClickHandler = function(){
console.log('I handled a click');
}
}
return viewModel;
}();
var testViewModel = new viewModel();
var theSpy = spyOn(testViewModel, 'internalClickHandler');
即使茉莉花高兴 'internalClickHandler' 存在并创建间谍,它永远不会被调用。实际上原来的功能(internalClickHandler)取而代之。
我创建了examples in codepen.io显示问题。失败的测试是试图窥探构造函数中的函数。
我的事件处理程序需要在构造函数中,因为它需要访问对象的实例,我确实想测试正确的处理程序已被触发,而不仅仅是触发了单击事件。
任何帮助将大受欢迎。由于
感谢您的回复,您的建议可以帮助我解决方案,并希望能帮助别人。你说得对,'onclick'函数被调用,而不是构造函数中的函数。但是,您的解决方案不能帮助我创建有用的测试,因为我只知道onclick已处理,但我不知道处理它的方式。 我发布了我的解决方案,它允许我窥探构造函数中的函数。 – moefinley
如果您认为这个答案有助于理解嘲弄点击/导向积极解决方案的概念,upvote会有所帮助。 –