Ich fange an zu lernen, wie unitTesting mit Jasmin zu tun. Ich lese viel im Internet und SO, aber ich kann mein Problem nicht lösen.uibModal-Anbieter unbekannt unitTest
Ich habe eine Direktive, die einen Controller hat. Dieser Controller verwendet den Dienst $ uibModal, um ein Modal zu öffnen, wenn ich auf ein Element klicke. Ich versuche, diesen Service von meinem Test zu injizieren, aber ich kann nicht. Ich lese viele Threads, die sagen, dass ich eine Instanz übergeben muss. Ich versuche es, aber ich kann nicht. Bitte jede Hilfe wird geschätzt.
.controller('myController', ['$scope', '$uibModal', function($scope, $uibModal){
var self = this;
//OTHER CODE
self.openMyModal = function(dataInput) {
var modalInstance = $uibModal.open({
animation: true,
bindToController: true,
templateUrl: 'app/myComponent/modals/component-modal.html',
controllerAs: 'componentModalCtrl',
controller: 'componentModalController',
windowClass: 'semi-modal semi-modal--large',
scope: $scope
})
}
//OTHER CODE
}
Dies ist der Test, wo ich versuche, diese Modal zu verspotten.
beforeEach(function(){
angular.mock.module('templates');
angular.mock.module('app.components.myComponent');
angular.mock.inject(function($compile, $rootScope, $templateCache, $controller){
scope = $rootScope;
modalInstance = { close: function(){}, dismiss: function(){}, open: function(){}
};
//Initializing element and doing compile and digest
controller = $controller('myController', {$scope: scope, $uibModal: modalInstance});
})
Ich erhalte den Fehler
Unbekannt Anbieter: $ uibModalProvider < - $ uibModal.
Kann ich diesen Dienst auf andere Weise injizieren? Was mache ich falsch?
P. S: Ich habe diese Zeilen lesen Testing AngularUI Bootstrap modal instance controller
Angular ui bootstrap $uibModalInstance breaks down unit tests
Mocking $modal in AngularJS unit tests