我有一个AngularJS应用程序,我正在尝试测试。问题是每当我尝试注入一个控制器时,它就会给我一个空对象。
beforeEach( inject(function($rootScope, $controller) {
console.log($controller) // {}
scope = $rootScope.$new();
ctrl = $controller('MenuCtrl', {
$scope: scope
});
console.log(ctrl) // {}
}));
我在JsFiddle中添加了一些我的设置样本和一些评论,我真的很感激帮助解决这个问题。
编辑 :我也试过这样做:
<击> beforeEach(angular.mock.module( '控制器')); 击>
然后我得到: 错误:无模块:控制器
解决了这个问题:
beforeEach(angular.mock.module( '控制器'));
答案 0 :(得分:2)
感谢Peter Bacon Darwin Angular mailing list
找到解决方案。我试图在控制器上调用changeView()
。但是,它是具有此功能的范围而不是控制器。
再次感谢。
答案 1 :(得分:0)
根据您的代码,
var Controllers = angular.module('controllers', []);
您的测试配置
beforeEach(angular.mock.module('Controllers'));
应该是
beforeEach(angular.mock.module('controllers'));
小写'C',因为这是该模块的实际名称。您也可以使用myApp
,因为它取决于controllers
。