2016-12-29 18 views
1

私はGrailsバックエンドを使って角型アプリケーションを試しています。コントローラを単体テストしています。残念ながら、それは私に次のエラーを与えている:ユニットテスト中に角型コントローラが登録されていません

[$controller:ctrlreg] The controller with the name 'SecurityController' is not registered. 

ここに私のユニットテストコードは次のとおりです。ここで

import angular from 'angular'; 
import 'angular-mocks'; 
import worldManagerApp from '../../src/world-manager-app'; 
import security from '../../src/security/security'; 

const {inject, module} = angular.mock; 

describe('SecurityController',() => { 
    let $state; 
    let vm; 

    beforeEach(module(worldManagerApp)); 
    beforeEach(module(security)); 

    beforeEach(inject((_$state_, $controller) => { 
     $state = _$state_; 
     spyOn($state, 'go'); 

     vm = $controller('SecurityController', { 
     }); 
    })); 

    it('should be registered',() => { 
     expect(vm).toBeDefined(); 
    }); 

}); 

は、コントローラのコードです:

function SecurityController(){ 
    'ngInject'; 

    const vm = this; 
    vm.security = "secure"; 
} 

export default SecurityController; 

そしてここでは、モジュールのコードがあり、良い測定のため:

import angular from 'angular'; 
import uiRouter from 'angular-ui-router'; 

import SecurityController from './securityController' 
import SignUp from './services/signUpService'; 
import AuthenticationService from './services/authService' 

const security = angular.module('security', [ 
    uiRouter, 
]).controller(SecurityController) 
    .service(SignUp) 
    .service(AuthenticationService); 

export default security.name; 

セキュリティモジュールがメインのアプリケーションモジュールにパッチされているので、それも提供できます。私はこれに関するいくつかのリソースを読んだことがありますが、私が試したことはこれまでに特に有用でした。

ありがとうございます!

+1

これは、Angular2SよりもAngular2によく似ています。 AngularJSでは、構文 'ngInject';を見たことがありません。 –

+1

@MikeMcCaughan、それは実際にNgAnnotateという後処理タスクです。そして、はい、それは角度1のためです。それは命の恩人です。あなたはそれを調べなければならない。 –

+0

これは、私がES5の代わりにES6を使用しているためかもしれません。 – Cooper

答えて

1
.controller(SecurityController) 
.service(SignUp) 
.service(AuthenticationService); 

あなたは、コントローラ/サービス、およびその実装OV名前を提供する必要が

.controller('SecurityController', SecurityController) 
.service('SignUp', SignUp) 
.service('AuthenticationService', AuthenticationService); 

でなければなりません。

+0

ああ、私はそれを逃したとは思わない!それは私のためにそれをしました。ありがとう! – Cooper

関連する問題