2016-07-27 16 views
0

Ich versuche Karma Unit Tests einzurichten und in meinem Test möchte ich eine Scope-Variable setzen, damit ich den Test durchführen kann. Ich bekomme den Fehler Kann die Eigenschaft 'expandedSeries' nicht definiert.AngularJS Scope-Variablen im Karma-Test setzen

Unten ist mein Code. Was mache ich falsch?

describe('FormController', function() { 
    beforeEach(module('userFormApp')); 
    var $controller; 
    var $rootScope; 

    beforeEach(inject(function (_$controller_, _$rootScope_) { 
    $controller = _$controller_; 
    $rootScope = _$rootScope_; 
    })); 

    describe('$scope.getImageSrc', function() { 
    var $scope, controller; 

    beforeEach(function() { 
     $scope = $rootScope.$new();   
     controller = $controller('FormController', { $scope: $scope}); 
    }); 

    $scope.expandedSeries = 1; 

    it('sets variables ', function() { 
     expect($scope).toBeDefined(); 
     expect($scope.expandedSeries).toBeDefined(); 
     expect($scope.expandedSeries).toEqual(1); 
    }); 
}); 

Antwort

1

Instanziieren Sie die Variable in vor jeder, so dass die Testfälle es erhalten können, wenn sie starten.

describe('$scope.getImageSrc', function() { 
var $scope, controller; 

beforeEach(function() { 
    $scope = $rootScope.$new();   
    controller = $controller('FormController', { $scope: $scope}); 
$scope.expandedSeries = 1; 
}); 

    it('sets variables ', function() { 
    expect($scope).toBeDefined(); 
    expect($scope.expandedSeries).toBeDefined(); 
    expect($scope.expandedSeries).toEqual(1); 
}); 

});

Verwandte Themen