如何在我的角应用程序中测试rootcope

时间:2015-07-27 23:27:39

标签: javascript angularjs unit-testing

我遇到了在我的案例中测试rootcope的问题

我有类似

的东西
describe('test controller', function () {
    var myCtrl, scope, rootScope;

    beforeEach(module('myApp'));
    beforeEach(inject(function (_$controller_, _$httpBackend_, _$rootScope_) {
        rootScope   = _$rootScope_;
        scope        = _$rootScope_.$new();

        rootScope = {item:{condition:'new'}};

        myCtrl = _$controller_('myCtrl', {
            $scope: scope
        });
    }));

    describe('test', function() {
        it('should test rootscope' , function() {
            scope.setCondition('old');
        });
    });
});

HTML

   $scope.setCondition = function(con) {
            $scope.condition  = con;
            setRoot(con);
    };

    var setRoot = function(con) {
        $rootScope.item.condition = con;
    }

我得到了未定义的'不是对象(evaluating '$rootScope.item.condition=con')

我在rootscope内指定beforeEach时,我不确定出了什么问题。任何人都可以帮我吗?非常感谢!

1 个答案:

答案 0 :(得分:2)

这一行

443

是你的问题。您覆盖了本地rootScope = {item:{condition:'new'}}; 变量而没有对rootScope做任何事情。

试试这个

$rootScope