jasmin angularjs test - Argument "PhoneListCtrl" n'est pas une fonction, suis pas défini
Lors de l'exécution d'un angularjs + de Jasmin + Karma test, j'ai obtenu le message d'erreur suivant:
Mon script de test est:
describe('PhoneCat controllers', function() {
describe('PhoneListCtrl', function(){
it('should create "phones" model with 3 phones', inject(function($controller) {
var scope = {},
ctrl = $controller('PhoneListCtrl', { $scope: scope });
expect(scope.phones.length).toBe(3);
}));
});
});
Ce code n'est qu'une copie officielle des AngularJS tutoriel ici:
http://code.angularjs.org/1.2.0-rc.3/docs/tutorial/step_02
Ici une partie de mes karma.conf.js fichier:
//list of files /patterns to load in the browser
files: [
'js/bower_components/angular/angular.js',
'js/bower_components/angular/ngular-mocks.js',
'js/app/controllers.js',
'test/unit/*.js'
],
L'erreur est PhoneListCtrl définissent pas, mais je crois qu'il est défini et chargé dans le code ci-dessus. Que pensez-vous est le problème? Merci!
Il semble que mon unité de test de fichier n'est pas au courant de la le contrôleur PhoneListCtrl. Comment dois-je construire la dépendance? Si quelqu'un peut me recommander un bon tutoriels angulaire + de Jasmin + karma tests des tutoriels?
OriginalL'auteur Nicolas S.Xu | 2014-04-13
Vous devez vous connecter pour publier un commentaire.
De l'initialisation du Module de la partie est manquante dans votre unité de test. Vous devriez appeler
module('phonecatApp')
avant de vous dès le premier appelinject()
. Votre code de test unitaire dans ce cas devrait ressembler à:où
phonecatApp
est le nom du module dans lequel vous avez défini votrePhoneListCtrl
contrôleur.Également tutoriel vous utilisez est obsolète, il est pour la version instable de Angulaire (1.2.0-rc.3). Voici une version mise à jour de la même tutoriel pour la version la plus récente du moment cinétique: http://docs.angularjs.org/tutorial/step_02
cela ne marche pas
OriginalL'auteur Vadim
cela fonctionne pour moi
OriginalL'auteur misha-from-lviv