我最近对单元测试进行了更深入的研究。我想知道是否有办法在生产代码中使用间谍。我有跟踪服务。无需更改代码即可访问其他服务甚至控制器会很好。
有没有办法监视从应用程序代码中的服务和控制器调用的方法,最好的方法是什么?
编辑 ATM。我正在使用这种模式来监视服务:
var vSetFNTrigger = function (sEvent, fnTrigger) { fnTrigger.obj[fnTrigger.sMethod] = (function () { var fnCached = fnTrigger.obj[fnTrigger.sMethod]; return function () { $rootScope.$broadcast(sEvent, {}); return fnCached.apply(this, arguments); }; })(); };
fnTrigger: {
obj: formData, // the service
sMethod: 'qPost' // the method to spy on
},
编辑 2 我忘了给内部函数添加一个返回值。