我正在使用Jasmine来测试我的AngularJS应用程序。我有一个Authenticaiton控制器,它调用我在应用程序控制器范围内定义的函数。所以:
1。 AppController的
$scope.setUser = function() {}
2。 AuthenticationController
$scope.setUser(User);
我正在测试AuthenticationController
,而setUser()不在scope
的{{1}}内。如何从AuthenticationController
注入范围/功能?
错误消息:
AppController
我应该嘲笑整个功能吗?结构有臭吗?最好的方法是什么?
编辑: 在真实的应用程序中,AuthenticationController被注入我的仪表板应用程序。
AuthenticationController:
TypeError: $scope.setUser is not a function
控制板:
angular
.module( 'authentication', [])
.controller('AuthenticationController', AuthenticationController);
AuthenticationController.$inject = ['$scope', '$rootScope', 'AUTH_EVENTS', 'AuthenticationService'];
信息 我的问题中的名称已更改,以便于理解。
答案 0 :(得分:0)
将$ rootScope注入您的控制器。
AppController:
$ rootScope.setUser = function(){}
AuthenticationController
$ rootScope.setUser();