2016-04-18 14 views
1

mapboxgl.Mapの新しいインスタンスを作成した後、私のユニットテストでは、map.setStyleメソッドが定義されていません。ユニットテストは1.5 +カルマジャスミンを実行しています。私は最新版のmapboxglを使っています。新しい地図インスタンスを作成した後、Mapboxgl setSyleが未定義

指令内部地図作成、map.setStyleが定義されている場合、EX:

テストで作成する場合、 map.setStyleが定義されていない
// directive 
angular.directive('mapDirective', function() { 
    link: function(scope, elem, attr, ctrl) { 
     ctrl.map = new mapboxgl.Map({ 
      container: elem[0], 
      style: 'mapbox://styles/spmatt/ciksnpcsy004992klvge9h2zb' 
     }); 
     console.log(ctrl.map.setStyle); // defined 
    } 
}); 


// tests 
let element = angular.element('<map-directive></map-directive>'); 
this.$compile(element)(this.$rootScope.$new()); 
this.$rootScope.$digest(); 

expect(this.vm.map.setStyle).toBeDefined(); // passes 

、EX:

第二のインスタンスが動作しなければならない
let element = angular.element('<div></div>'); 
this.$compile(element)(this.$rootScope.$new()); 
this.$rootScope.$digest(); 

map = new mapboxgl.Map({ 
    container: element[0], 
    style: 'mapbox://styles/spmatt/ciksnpcsy004992klvge9h2zb' 
}); 

expect(map.setSyle).toBeDefined(); // fail 

、それがなぜ失敗するのか?

答えて

0

あなたのテスト環境は何ですか?一部のヘッドレスブラウザにはGLがないため、MapboxGLはサポートされません。

mapboxgl.supported()が返すものを見てください。私はあなたのマップのインスタンシエーションがこのために失敗したのだろうかと思います。

関連する問題