AngularJS + Jasmine:间谍事件回调

时间:2013-04-30 18:58:28

标签: javascript angularjs jasmine

我有问题spyOn方法绑定到一个工厂服务范围。$ on的事件,使用Jasmine。最初传递的真实方法被称为,而不是间谍。 我做了一个plinkr:http://plnkr.co/edit/2RPwrw?p=preview

感谢您的帮助。

1 个答案:

答案 0 :(得分:7)

这是因为你绑定回调的方式。变化

service.$on('hello', service.method);

service.$on('hello', function() {
  service.method();
});

当您说spyOn(service, 'method')时,您说“用间谍替换service.method处引用的值”。但是,您的原始service.$on代码在触发事件时不会在service.method 中查找值 - 而是在初始化服务时查找 。因此,更改service.method指向以后的引用无效。