У меня есть приложение, которое использует google Maps API
v3
js
, и я пытаюсь передать ему модульные тесты. Проблема в том, что мне нужно смоделировать методы lat()
и lng()
метода map.getBounds.getSouthWest
, но я не знаю, как это сделать правильно, поэтому компилятор говорит, что
map.getBounds (...). getSouthWest (...). lat не является функцией.
Это мой google-maps-mock
(не завершена только картачасть здесь):
getMap = function() {
var Map;
Map = function(opts) {
};
Map.prototype.center = {
lat: function() {
return 0;
},
lng: function() {
return 0;
}
};
Map.prototype.controls = {
TOP_CENTER: [],
TOP_LEFT: [],
TOP_RIGHT: [],
LEFT_TOP: [],
RIGHT_TOP: [],
LEFT_CENTER: [],
RIGHT_CENTER: [],
LEFT_BOTTOM: [],
RIGHT_BOTTOM: [],
BOTTOM_CENTER: [],
BOTTOM_LEFT: [],
BOTTOM_RIGHT: []
};
Map.prototype.overlayMapTypes = new window.google.maps.MVCArray();
Map.prototype.getControls = function() {
return this.controls;
};
Map.prototype.setOpts = function() {
};
Map.prototype.setOptions = function() {
};
Map.prototype.setZoom = function() {
};
Map.prototype.panToBounds = function() {
};
Map.prototype.fitBounds = function() {
};
Map.prototype.setCenter = function() {
};
Map.prototype.getCoords = function() {
if (Map.getCoords == null) {
return {
latitude: 47,
longitude: -27
};
}
};
/* This method works */
Map.prototype.getBounds = function() {
if (Map.getBounds == null){
return {
bounds: [47,33,52,44],
getNorthEast: function() {
return [47,33];
},
getSouthWest: function() {
return [52,44];
}
}
}
};
/* This method doesn't work*/
Map.prototype.getBounds.getSouthWest = function() {
if (Map.getBounds.getSouthWest == null) {
return {
lat: function() {
return 47;
},
lng: function() {
return 33;
}
}
}
};
/* This method doesn't work*/
Map.prototype.getBounds.getNorthEast = function() {
if (Map.getBounds.getNorthEast == null) {
return {
lat: function() {
return 52;
},
lng: function() {
return 44;
}
}
}
};
return Map;
};