私は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;
セキュリティモジュールがメインのアプリケーションモジュールにパッチされているので、それも提供できます。私はこれに関するいくつかのリソースを読んだことがありますが、私が試したことはこれまでに特に有用でした。
ありがとうございます!
これは、Angular2SよりもAngular2によく似ています。 AngularJSでは、構文 'ngInject';を見たことがありません。 –
@MikeMcCaughan、それは実際にNgAnnotateという後処理タスクです。そして、はい、それは角度1のためです。それは命の恩人です。あなたはそれを調べなければならない。 –
これは、私がES5の代わりにES6を使用しているためかもしれません。 – Cooper