如何测试角度指令范围:true

时间:2016-03-10 20:32:55

标签: angularjs unit-testing jasmine

我的角度测试达到了返回声明时遇到了一些麻烦。我正在使用茉莉与业力和吟游诗人js。我使用ng2html preprocesser来 $ templateCache

templatesCached 是我的templates文件夹中文件的模块名称。 ha.module.core 放置我想要测试的指令。当我运行调试工具时,我正在接触它。

以下是我的测试。他们通过了,但我遇到的问题是 rootScope 没有任何特定值。还

element.html() // returns "" in the console.  I was expecting my directive back.  Is this wrong?

在我运行controller = element.scope之后我得到了

html = [div.ng-scope]





describe(" directive", function () {
    var element,
        template,
        controller;

    beforeEach(function () {
        bard.appModule("templatesCached", "ha.module.core");



        bard.inject(
            "$compile",
            "$controller",
            "$rootScope",
            "haConfig"
        );
    });



    beforeEach(function () {

        var html = angular.element("<div explore-hero></div>");

        spyOn(myService, "getTemplateUrl");
        //console.log("html ", html);

        $rootScope = $rootScope.$new();

        element = $compile(html)($rootScope);
        $rootScope.$digest(element);
        controller = element.scope();

        element.controller('heroController');

Element.controller是一个匿名函数。

        console.log('element', element);

    });


    it("should have a div element", function () {
        var result = element[0].querySelectorAll(".container");
        expect(element.length).toBe(1); // not a ideal test for creation
        expect(result).toBeDefined();
    });


}); 

这是我缓存的模板。

    module.run(['$templateCache', function($templateCache) {
  $templateCache.put('/templates/explore-hero-base-template.html',
    '<div class="container">\n' +
    '    <div share-widget></div>\n' +
    '///html divs and info'
    '</div><!-- .container -->');
}]);

我的指示

  angular.module('ha.module.core').directive('exploreHero', function(myService) {
   var HeroController = function($scope) {
       $scope.emit('methods')
   };

   return {
      restrict: 'A',
      scope: true,
      templateUrl: myService.getTemplateUrl('explore-hero.html),
      controller: 'HeroController
    }
)

任何见解都会有所帮助

0 个答案:

没有答案