当尝试为使用useRouter()钩子的Next.js应用程序编写简单测试时,vitest开始抛出错误。寻找用vitest模拟next/router进行单元测试的方法。
useRouter()
vitest
zfycwa2u1#
经过一些研究和反复试验,我找到了模拟next/router的方法。您需要为测试设置创建一个设置文件,并配置vitest以使用该文件。
next/router
// vitest.config.js/ts export default defineConfig({ test: { environment: "jsdom", globals: true, setupFiles: ["vitestSetup.ts"], }, });
现在在根目录中创建vitestSetup.ts,内容如下。
vitestSetup.ts
// vitestSetup.ts import { beforeAll, vi } from "vitest"; beforeAll(() => { vi.mock("next/router", () => require("next-router-mock")); }
恭喜你!你已经成功模仿了next/router。
1条答案
按热度按时间zfycwa2u1#
经过一些研究和反复试验,我找到了模拟
next/router
的方法。您需要为测试设置创建一个设置文件,并配置
vitest
以使用该文件。现在在根目录中创建
vitestSetup.ts
,内容如下。恭喜你!你已经成功模仿了
next/router
。