我正在尝试为使用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坐标的对象。