2017-07-12 6 views
1

単純なコントローラ変数をテストしようとしていますが、コントローラに親コントローラを呼び出してこのエラーを表示するメソッドがあります。新しい(public_htmlので scope.setMetaInfoが初期化で機能 (20:77のpublic_html /コンポーネント/マイアカウント/サインイン/コントローラ/ signin_controller.js)ではありません$:ここ は、テストファイル親コントローラで定義されたメソッドを持つ子コントローラをテストするときの問題

describe('SigninController', function() { 
    beforeEach(module("app.website")); 
    var controller,scope,parentscope; 
    var $scope,$controller,$parentScope,$parentcontroller,$mdToast; 
    window.ga = function() {}; 

    beforeEach(module("ngMaterial")); 
    beforeEach(module("ngAnimate")); 
    beforeEach(inject(function ($rootScope, $controller) { 
     scope = $rootScope.$new(); 
     controller = $controller('SigninController',{$scope : scope}); 
    })); 

    describe('simple program', function() { 
     it('should say true equals true', function() { 
      expect(scope.isShowProgress).toEqual(false); 
     }); 
    }); 
}); 

はTypeErrorです(public_html/bower_components/angular/angular.js:5055:14) $ controller(public_html/bower_components/angular/angular)。 js:10975:28) at public_html/bower_components/angular-mock/angular-mocks.js:2308:14 atオブジェクト。 Object.WorkFn(public_html/bower_components/angular-mocks/angular-mocks)のObject.invoke(public_html/bower_components/angular/angular.js:5040:19) の のオブジェクト(単位%20Tests/demotest.js:17:22) .js:3182:20) エラー:window.inject.angular.mock.inject(public_html/bower_components/angular-mocks/angular-mocks.js:3145:25)の宣言場所 (スイート) (単位:%20Tests/demotest.js:15:16) 単位%20Tests/demotest.js:7:1 Chrome 59.0.3071(Mac OS X 10.11.6):実行中の1(FAILED)(0秒/ 0.204秒) クローム59.0.3071する(Mac OS X 10.11.6):実行される1の1(1 FAILED)ERROR(0.221秒/ 0.204秒)

答えて

0
var MainTodayCtrl, 
    rootScope, 
    scope; 

// Initialize the controller and a mock scope 
beforeEach(inject(function($controller, $rootScope) { 
    rootScope = $rootScope.$new(); // root for parent controller 
    $controller('MainCtrl', { $scope: rootScope }); 

    // then your MainCtrl will alter that scope 
    // for the child controller you need a "derived" scope 
    scope = rootScope.$new(); 

    // now business as usua 
    MainTodayCtrl = $controller('MainTodayCtrl', { 
     $scope: scope 
     // place here mocked dependencies 
    }); 
})); 
関連する問題