[Day 11] React + Jest 路徑測試 (AI)
在使用 copilot chat 產出路徑測試時,比起跟他詳細說明你要的測試條件,像是使用 jest.mock
模擬元件回傳,或是使用 history
套件模擬路由行為等等,我這邊提供一個更好的方法,讓 copilot chat 可以完美的達成你的需求。
就是先寫一份 Template(模板)!
Router 導頁測試
直接先寫其中一個路徑的完整測試:
import { render, screen } from "@testing-library/react";
import { RouterProvider, createMemoryRouter } from "react-router-dom";
import { routerConfig } from ".";
// 模擬元件回傳
jest.mock("@/pages/HomePage/Home/index.tsx", () => {
return {
Home: () => <div>home page</div>,
};
});
// 測試
describe("router testing", () => {
it("當 router 路徑為 '/home' 顯示 'home page' 文字", () => {
const router = createMemoryRouter(routerConfig, {
initialEntries: ["/home"],
});
render(<RouterProvider router={router} />);
expect(screen.getByText(/home page/i)).toBeInTheDocument();
});
});
這時候再請 copilot chat 依據這個模板,把剩下的路徑測試都寫出來:
/test Generate all route separate unit test with the router/index.test.tsx template