我已将地点自动完成功能添加到我的 React 项目的输入中。
const onPlaceChange = () => {
let address = autoCompleteService.current.getPlace();
onAddressChange(address);
}
autoCompleteService.current = new google.maps.places.Autocomplete(document.getElementById(id), options);
autoCompleteService.current.addListener("place_changed", onPlaceChange);
我正在尝试使用react-testing-library编写单元测试,但我无法触发
place_changed
事件。我试过了
fireEvent(addressInput, createEvent('place_changed', addressInput, {target: {value: "123 fake st."}}))
其中addressInput是输入DOM元素,但这似乎不起作用。任何帮助将不胜感激。
fireEvent
不起作用,因为该事件是扩展 google.maps.MVCObject
的 Autocomplete 类上的自定义事件的一部分。
基本上
addListener !== addEventListener
。
我在 https://www.npmjs.com/package/@googlemaps/jest-mocks 有一组 Google 地图的部分模拟。不过,模拟库中似乎缺少 MVCObject.trigger 。但这可能会让你更接近。