Je tente une application Angular avec un backend Grails, et je suis un testeur unitaire du contrôleur, simplement pour voir s'il existe, avant de commencer à travailler avec. Malheureusement, il me donne l'erreur suivante:Le contrôleur angulaire ne s'enregistre pas pendant les tests unitaires
[$controller:ctrlreg] The controller with the name 'SecurityController' is not registered.
Voici mon code de test unitaire:
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();
});
});
Voici le code du contrôleur:
function SecurityController(){
'ngInject';
const vm = this;
vm.security = "secure";
}
export default SecurityController;
Et voici le code du module, pour faire bonne mesure:
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;
Le module de sécurité est corrigé dans mon module d'application principal, donc je peux le fournir aussi. J'ai lu quelques ressources à ce sujet, mais rien de ce que j'ai essayé n'a été particulièrement utile jusqu'ici.
Merci d'avance!
Cela ressemble beaucoup plus à Angular2 qu'à AngularJS. Je n'ai jamais vu la syntaxe '' ngInject '' dans AngularJS, par exemple. –
@MikeMcCaughan, c'est en fait une tâche de post-traitement appelée NgAnnotate. Et oui, c'est pour l'angulaire 1. C'est un épargnant de vie. Vous devriez examiner. –
C'est peut-être juste parce que j'utilise ES6 au lieu de ES5. – Cooper