存根Google Maps地理编码器以进行测试

时间:2017-12-04 22:22:25

标签: javascript google-maps-api-3 sinon

我正在尝试为使用Google Maps API地理编码器服务的地理编码功能创建测试

function geocodeLocation(zipcode){

  const service = new google.maps.Geocoder();

  return new Promise(function(resolve,reject){
    service.geocode( {'address': zipcode}, function(results, status){
      if (status === 'OK') {
        const lat = results[0].geometry.location.lat()
        const lng = results[0].geometry.location.lng()
        resolve([lat, lng])
      } else {
        reject(status)
      }
    })
  }).then((response) => {
    return response;
  })
}

我还创建了一个google窗口对象,该对象应该代表页面上的google api对象。以下剪辑正在导入到测试文件中。

window.google = {
  maps: {
    DistanceMatrixService: noop,
    Geocoder: noop,
    ZoomControlStyle: EMPTY_OBJECT,
  },
};

我假设我现在应该这样做以便存根地理编码器功能:

stub(google.maps.Geocoder(), 'geocode')

但是,我得到了这个:

TypeError: Cannot stub non-existent own property geocode

这只是我正在绊倒的语法,还是我的实现关闭?理想情况下,我只想测试我的函数geocodeLocation返回一个具有lat / long坐标的对象。

0 个答案:

没有答案