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.
Beinhaltet Karma die Dateien, die Ihr 'starter.controllers' Modul sowie den' TemplateCtrl' Controller definieren? – Phil
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
Scheint gut hier zu funktionieren ~ http://plnkr.co/edit/NwcVhYN7fL16R1TzBFOH?p=preview – Phil