测试 Angular 个使用 OpenLayers 的工厂

Testing Angular factory that uses OpenLayers

我正在使用 openlayers 和 Angular 工厂编写地图抽象层来共享 API。我正在尝试使用 jasmine 对其进行测试,但 OpenLayers 似乎表现不佳。

describe("add Group", function(){
 var map;
 beforeEach(function(){
    module('surgeApp');
 })
 beforeEach(inject(function(mapBase){
    map = mapBase;
 }));
 it("adds a group", function() {
    expect(map.addNewGroup("WMS Layers", [])).toEqual(ol.layer.Group);
  })
})

引发此错误:类型错误:无法读取未定义的 属性“0” 在他 (src/webapp/libraries/js/openlayers-3.js:703:31)

我认为这与地图未正确初始化有关,但不确定解决方法是什么。如果我不能测试这个,那就太可惜了。

对于走在这条非常令人沮丧的道路上的任何人,您需要为地图添加一个 div。这很烦人,因为它覆盖了 Jasmine 的一部分,所以我做了以下操作:

<div id="map" style="width:10px"></div>

这导致地图非常小。你可以让你的更小,我只是喜欢能够确保它正在加载。在那之后,我能够对我的功能进行单元测试。