如何测试$ uibModal实例控制器?

时间:2017-04-02 12:22:32

标签: angularjs unit-testing bootstrap-modal angular-controller

我正在尝试使用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个控制器是否可以? 或者有其他方法来测试控制器?

谢谢!

0 个答案:

没有答案