我正在尝试使用Jasmine单元测试来测试某个控制器功能。
我有一个函数可以打开一个带有新控制器的模态实例:
function openFilterModal(data) {
var modalInstance = $uibModal.open({
controller: FilterModalController,
controllerAs: 'vm',
templateUrl: 'modal.html',
resolve: {
data: function () {
return data;
}
}
});
return modalInstance.result;
}
控制器定义如下:
FilterModalController.$inject = ['alertsModalService', '$uibModalInstance', 'data', '$scope', 'logger', '$timeout'];
function FilterModalController(alertsModalService, $uibModalInstance, data, $scope, logger, $timeout) {
// code goes here }
当我尝试调用'openFilterModal'时,我无法获取控制器实例,只是从中得到了承诺。 我试图在Jasmine中使用$ controller(FilterModalController)函数,但是找不到控制器。
在这种情况下,最佳做法是什么? 我应该将控制器定义添加到我的模块吗?现在它定义为匿名控制器...不确定这是否是好的行为。
像那样:app.controller('FilterModalController', FilterModalController);
在同一模块上定义2个控制器是否可以? 或者有其他方法来测试控制器?
谢谢!