如何将 $rootScope 注入 AngularJS 单元测试?

假设我有一个依赖于 $rootScope 中的值的服务,如以下(普通)服务:

Suppose I have a service that depends on a value in $rootScope, as with the following (trivial) service:

angular.module('myServices', [])
.factory('rootValGetterService', function($rootScope) {
    return {
        getVal: function () {
            return $rootScope.specialValue;
        }
    };
});

如果我想通过在 $rootScope 中输入一个值来进行单元测试,最好的方法是什么?

If I want to unit test this by putting a value in $rootScope, what is the best way to go about it?

推荐答案

...
var $rootScope;
beforeEach(inject(function(_$rootScope_) {
  $rootScope = _$rootScope_;
}));
...

相关文章