容器未定义使用Jasmine测试Leaflet angular Map

时间:2016-07-15 15:40:32

标签: angularjs jasmine leaflet

我正在尝试测试一个服务,该服务引用了在指令中生成的map(不是第三方,自己的指令)

这是我的spec文件

       beforeEach(() => {
    inject(($injector: any, $rootScope: ng.IRootScopeService) => {
        $log = $injector.get('$log');
        $q = $injector.get('$q');
        $timeout = $injector.get('$timeout');
        _compile = $injector.get('$compile');
        _scope = $rootScope.$new();
    });
    serviceUnderTest = new mapServiceObj($log, $q, $timeout);
    var element = angular.element('<div id="map"></div>');
    element = _compile(element)(_scope);
    _scope.$digest();
    serviceUnderTest.map = L.map("map");
});

当我运行测试时,我在最后一行收到错误,说明容器未定义。我想我很亲近,有人可以指出我的错误在哪里吗?

1 个答案:

答案 0 :(得分:1)

想通了。需要添加到DOM。这是修复。

 var ele = angular.element('<div id="map"></div>');
    angular.element(document.body).append(ele);
    _compile(ele)(_scope);
    _scope.$digest();
    serviceUnderTest.map = L.map("map");