AngularJS - 如何对没有逻辑的测试指令进行单元化

时间:2015-07-17 10:22:38

标签: angularjs unit-testing

我想做一个非常简单的Jasmine测试来测试以下指令:

'use strict';

angular.module('kits.ui.components')

    .directive('toggle', function() {
        return {
            restrict: 'E',
            require: 'ngModel',
            scope: {
                onText: '@',
                offText: '@',
                ngModel: '=',
                label: '@'
            },
            templateUrl: 'modules/ui.components/toggle/views/toggle.view.html'
        };
    });

这种简单指令的最佳方法和建议是什么?

切换视图:

<div>
    <label data-auto="toggleLabel" for="toggle-input-{{$id}}" class="col-sm-2 control-label">
        {{label}}
    </label>
    <div class="col-sm-10 checkbox-inline">
        <label class="cnc-toggle">
            <input data-auto="toggleInput" ng-model="ngModel" id="toggle-input-{{$id}}" type="checkbox" class="toggleInput">
                <div class="track">
                    <div ng-show="ngModel" class="toggle-label on">
                        {{onText || 'ON'}}
                    </div>
                    <div ng-show="!ngModel" class="toggle-label off">
                        {{offText || 'OFF'}}
                    </div>
                <div class="handle"></div>
            </div>
        </label>
    </div>
</div>

1 个答案:

答案 0 :(得分:2)

在没有看到任何尝试实现规范或尝试失败的堆栈跟踪的情况下,我会参考以下文章/资源来开始使用单元测试指令:

粗略的基础:

  • 将模块注入规范套件。
  • $编译指令模板。
  • 将$ compiled指令存储为变量,可用于所有单个规范。
  • 触发.isolateScope().$digest
  • 写下期望。