我试图测试与酶的一个组件,这是使用谷歌Map的CDN,你可以看到下面:
/* global google */
import React from 'react';
class GoogleMap extends React.Component {
componentDidMount() {
/* eslint-disable no-new */
new google.maps.Map(this.map, {
center: { lat: 45.772141, lng: 4.874891 },
zoom: 16,
});
}
render() {
return (
<div
ref={(c) => { this.map = c; }}
style={{ width: 500, height: 300 }}
>I should be a map!
</div>
);
}
}
export default GoogleMap;
正如我所料,下面的测试:
describe('GoogleMap', () => {
it('should be defined', () => {
expect(GoogleMap).toBeDefined();
});
it('should render correctly', () => {
const wrapper = shallow(<GoogleMap />);
expect(wrapper).toMatchSnapshot();
});
});
我得到了这个错误:
TypeError: Cannot read property 'Map' of undefined
5 | componentDidMount() {
6 | /* eslint-disable no-new */
> 7 | new google.maps.Map(this.map, {
8 | center: { lat: 45.772141, lng: 4.874891 },
9 | zoom: 16,
10 | });
任何人都可以帮助我做修复这个错误?或者我逃避GoogleMap测试?更一般地说,我们可以用酶测试一些CDN?
1条答案
按热度按时间b4lqfgs41#
@或者B谢谢你,我搜索了第三方库,我发现了一个关于谷歌未定义的issue,我以前没有找到。
下面的代码没有模仿第三个库,但是,我想如果我理解了,声明一个新的空类,它将允许不抛出错误。