Meine eckige App funktionierte großartig und so taten meine Tests mit Karma und Jasmin, bis ich eine Abhängigkeit in ui.bootstrap
hinzufügte. Jetzt funktioniert die App immer noch wie erwartet, aber ich kann meine Tests nicht ausführen. Das ist, was ich habe:AngularJS Jasmine Test schlägt fehl: Modul
app.js - hinzugefügt Abhängigkeit in ui.bootstrap
angular.module('myApp', ['ngResource', 'ngRoute', 'ui.bootstrap']).config(function(...) {...});
service.js
angular.module('myApp').service('myService', function() {})
controller.js
angular.module('myApp').controller('MyController', function ($scope, $http, myService) {})
Tests/main.js
describe('Controller: MyController', function() {
var MyController, scope;
// load the controller's module
beforeEach(function(){
module('myApp');
inject(function ($controller, $rootScope) {
scope = $rootScope.$new();
MyController = $controller('MyController', {
$scope:scope
});
});
});
it('should do something', function() {
expect(scope.myOptions.length).toBe(5);
});
});
Und mein Test, den ich grunzen und krama laufen verwenden, schlägt durch:
Error: [$injector:modulerr] Failed to instantiate module myApp due to:
Error: [$injector:modulerr] Failed to instantiate module ui.bootstrap due to:
Error: [$injector:nomod] Module 'ui.bootstrap' is not available! You either misspelled the module name or forgot
Was habe ich verpasst? Die App läuft ohne Probleme, nur der Test schlägt fehl.
überprüfen Sie bitte Ihre Datei karam.conf.js, dass die bootstrap-ui js-Dateien enthalten sind. – michael
Ja, das war es. Verpasste die karma.conf.js dort. Vielen Dank! – Haji
Ich habe das gleiche Problem gerade jetzt, aber ich fragte mich, warum ich alle Module laden sollte, wenn es ein Komponententest ist und diesen spezifischen Teil des Codes isolieren sollte? Wenn ich nicht falsch verstehe, fühlt es sich an, als müsste man alles laden, was eher ein Integrationstest wäre. – Stokedout