키워드
라우터란?
React Router
- Browswer Router
- Route
- Memory Router
// App.tsx
import { Routes, Route } from 'react-router-dom';
function App() {
return (
<div>
<Header />
<main>
<Routes>
<Route path="/" element={<HomePage />} />
<Route path="/about" element={<AboutPage />} />
</Routes>
</main>
<Footer />
</div>
);
}
테스트 환경에서 BrowserRouter를 사용하면 실패한다.
// main.tsx
import { BrowserRouter } from 'react-router-dom';
root.render((
<BrowserRouter>
<App />
</BrowserRouter>
));
테스트환경에서는 메모리 라우터를 사용하면 된다.
import {render} from '@testing-library/react'
import { MemoryRouter } from "react-router-dom";
import App from './App';
const context = describe;
describe('App', () => {
function renderApp(path: string) {
render((
<MemoryRouter initialEntries={[path]}>
<App />
</MemoryRouter>
));
}
context('when the current path is “/”', () => {
it('renders the home page', () => {
renderApp('/');
screen.getByText(/Hello/);
});
});
context('when the current path is “/about”', () => {
it('renders the about page', () => {
renderApp('/about');
screen.getByText(/About/);
});
});
});