如何防止具有自实例化功能的角度控制器执行测试?
(我用一个人为的例子来说明我的问题)
我有一个控制器在启动时执行一些代码(在我的例子中是 ajax)
var app = angular.module('app', []);
app.controller('myCtrl', function () {
this.doSomething = function () {
console.log('nahh');
};
this.doSomething();
});
我正在尝试为控制器编写测试。我不想doSomething执行。
var ctrl = $controller('myCtrl',
{
$scope: {}
});
// ctrl.doSomething has already run!
expect(something).to.be(true);
使用backbone.js时,我会做类似的事情:
MyCtrl.prototype.doSomething = function(){};
myCtrl = new MyCtrl();
我在初始化之前修改原型以防止执行。$controller 似乎给了我一个控制器的实例。能够获得原型会很有用。可能还有其他方法可以克服这个我不知道的!