我在使用 Jasmine 在工厂服务中监视绑定到具有 scope.$on 的事件的方法时遇到问题。调用最初传递的真实方法,而不是 spy。我做了一个 plinkr:http ://plnkr.co/edit/2RPwrw?p=preview
谢谢你的帮助。
我在使用 Jasmine 在工厂服务中监视绑定到具有 scope.$on 的事件的方法时遇到问题。调用最初传递的真实方法,而不是 spy。我做了一个 plinkr:http ://plnkr.co/edit/2RPwrw?p=preview
谢谢你的帮助。
这是因为您绑定回调的方式。改变
service.$on('hello', service.method);
至
service.$on('hello', function() {
service.method();
});
当您说 时spyOn(service, 'method')
,您是在说“用service.method
间谍替换引用的值”。但是,您的原始service.$on
代码不会在触发事件时查找 service.method 的值——而是在服务初始化时查找它。因此,更改service.method
指向稍后的引用没有效果。