如何在指令的外部定义控制器中正确初始化/模拟和单元测试输入数据?

时间:2014-11-12 16:42:13

标签: javascript angularjs unit-testing angularjs-directive angularjs-controller

我有一个使用外部控制器和模板的自定义指令。用户将一些初始数据传递给指令,该指令在控制器内部使用。

当我对myController进行单元测试时, this.inputData 最初是未定义的。如何在单元测试中初始化或模拟 this.inputData ,以便我可以正确测试在第一个参数中使用定义值调用 myCustomFilter

CustomDirective:

'use strict';

angular.module('myModule')
    .directive('myDirectve', function () {
        return {
            restrict: 'EA',
            scope: {
                inputData: '='
            },
            templateUrl: 'templates/my-directive-template.html',
            bindToController: true,
            controllerAs: 'main',
            controller: 'myMainCtrl',
            link: function () { }
        };
    });

DirectiveController:

'use strict';

angular.module('myModule')
    .controller('myMainCtrl', function (myCustomFilter) {
        this.filteredData = myCustomFilter(this.inputData, true);
    });

我的指示性模板:

<span>{{ main.filteredData.length }}</span>

使用MyDirective:

<my-directive inputData="myInputData"></my-directive>

0 个答案:

没有答案