1

Ich habe meinen Kopf gegen die Wand geschlagen, um herauszufinden, warum diese Tests nicht funktionieren mit Karma und Jasmin, um einen Ionic Controller zu testen. Ich bin neu in Ionic, Karma Unit Testing, Angularjs und so ziemlich alles andere hier. Kann jemand den Grund erkennen, warum diese Tests fehlschlagen?Unit Testing ein Controller Ionic Framework Karma

Hier ist mein Controller:

angular.module('starter.controllers') 
    .controller('TemplateCtrl', function($scope) { 
     $scope.text = 'Hello Template'; 
    }); 

mein Test hier:

describe('Template Controller', function(){ 
     var scope; 
     beforeEach(module('starter.controllers')); 
     beforeEach(inject(function($rootScope, $controller) { 
      scope = $rootScope.$new();       
      $controller('TemplateCtrl', {$scope: scope});  
     })); 

     // tests start here 

     it('should have scope defined', function() { 
      expect(scope).toBeDefined(); 
     }); 

     it('should have text set to Hello Template', function(){ 
      expect(scope.text).toEqual('Hello Template'); 
     }); 
    }); 

Testergebnisse:

PhantomJS 2.1.1 (Linux 0.0.0) Template-Controller sollte Umfang FAILED definiert haben Erwartet undefiniert definiert werden.

PhantomJS 2.1.1 (Linux 0.0.0) Template Controller sollte Text auf Hello Template FAILED setzen TypeError: undefined ist kein Objekt (evaluiert 'scope.text') in controller-tests/template.tests.js (Linie 23)

Vielen Dank für Ihre Zeit.

+1

Beinhaltet Karma die Dateien, die Ihr 'starter.controllers' Modul sowie den' TemplateCtrl' Controller definieren? – Phil

+1

Die App schlägt beim Bootstrap ('inject (...)') fehl, daher bleibt 'scope' undefiniert. Phantomjs ist für Schluckfehler bekannt. Wenn keine anderen Fehler in der Konsole angezeigt werden, versuchen Sie, sie in Chrome zu ändern. – estus

+1

Scheint gut hier zu funktionieren ~ http://plnkr.co/edit/NwcVhYN7fL16R1TzBFOH?p=preview – Phil

Antwort

0

Phil das Problem identifiziert, ohne mich sogar mein Karma Konfigurationsdatei schreibt:

Does Karma include the files that define your starter.controllers module as well as the TemplateCtrl controller?

einfach den Pfad zur Karma-Konfigurationsdatei mein Problem behoben hinzufügen. Danke Phil!

Verwandte Themen