我尝试使用jest来测试文档中的链接,但是测试失败,元素类型无效。为什么从“react-leaflet”导入在jest中未定义?
我的测试
import { render, screen } from '@testing-library/react';
import App from './App';
test('renders learn react link', () => {
render(
<App />
)
const linkElement = screen.getByText("map-btn");
expect(linkElement).toBeInTheDocument();
});
以及App.js
import React, { useState, useEffect } from "react"
import { MapContainer, TileLayer, Marker, Popup, useMap, Circle } from 'react-leaflet'
import L from 'leaflet'
function App(){
return (
<div className={'col-md-8'}>
<div>
<MapContainer center={[25.033671, 121.564427]} zoom={17} style={{height: '100vh'}} >
<TileLayer
attribution='© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
/>
<Marker position={[25.033671, 121.564427]}>
<Popup>current position</Popup>
</Marker>
</MapContainer>
</div>
</div>
)
}
export default App
1条答案
按热度按时间0g0grzrc1#
我有一个几乎相同的设置。解决这个问题的方法是安装
jest-canvas-mock
模块,然后将其包含在我的src/setupTest.js
文件中,如下所示:然后,我能够模拟出包含应用程序中使用的
react-leaflet
组件的实际div,并测试应用程序是否正确呈现: