单元测试具有依赖关系的Angular js指令

时间:2013-08-06 05:51:26

标签: unit-testing angularjs jasmine

这是我的指示

.directive('xDirective', ['x', 'y', function (x, y) {
        return {
            restrict: 'CA',
            link: function (scope, element, attrs, messaging) {
                //console.log(scope);
                //console.log(element);
                //console.log(attrs);

                if (x.isResponsive && x.responsiveMode === y.responsive.mode.phone) {

                    //set the height of the header based on the device height
                    var offset = (attrs.heightOffset ? attrs.heightOffset : 0);                    
                    element.css("height", (x.device.height - offset) + 60 + "px");
                }
            }
        };
    }])

其中x和y是指令的依赖关系。我希望单元测试这个指令。如何继续使用jasmine。

感谢。

1 个答案:

答案 0 :(得分:3)

我使用下面的stackoverflow线程

来计算它

Testing angularjs directive with dependencies

以下是代码:

describe('Directive: AppVersion', function () {
    beforeEach(module('MyApp'));

    var element;

    it('should have element text set to config value', inject(function ($rootScope, $compile, x,y) {
        var scope = $rootScope;
        element = $compile('<div class="someClass" xDirective >some Content</div>')(scope);
        expect($(element).find('.someClass').css('height')).toBe(config.version);
    }));
});

在它的块里面我正在注入'x'和'y'模块,这些模块是对指令的依赖

由于