Вопрос больше не про сами карты, а про тестирование сделанного
На карте нужно нарисовать квадрат для этого есть скрипт:
var rectCreator = {map: null,getSegmentLength: function() {var getLength = function(direction){if (direction != 0 && direction != 1) {direction = 0;}var mapSize = HouseCreator.map.getBounds();var length = (mapSize[1][direction] - mapSize[0][direction]) / 4;if (length < 0) {length = -1 * length;}return length;};var segment = getLength(0);var _segment = getLength(1);if (segment > _segment) {segment = _segment;}return segment;},createMap: function(city, container, callback) {ymaps.geocode(city).then(function(result){var coordinates = result.geoObjects.get(0).geometry.getCoordinates() ; HouseCreator.map = new ymaps.Map (container, {center: coordinates,zoom: 9});callback();});},createRectangle: function() {var segmentLength = HouseCreator.getSegmentLength();var center = HouseCreator.map.getCenter();var rect = new ymaps.Rectangle([[center[0] - segmentLength / 2, center[1] - segmentLength],[center[0] + segmentLength / 2, center[1] + segmentLength]], {}, {});HouseCreator.map.geoObjects.add(rect);},};
Скрипт работает верно, но как его протестировать?
Пытаюсь так
window.onload = function () {var creator = rectCreator;asyncTest(creator.createMap('Москва', 'map', creator.createRectange), function(){var map = document.getElementById('map');ok(map, 'Document has container');ok(map.getElementsByTagName('ymaps'), 'Container has map');equal(creator.map.getCenter(), [55.7536759999937, 37.61989899999996]);});};
Первые два теста проходят, но в третьем в creator.map все еще null.
В связи с этим вопрос у меня такой: как протестировать данный код и вообще как правильно такие вещи тестировать?