如何使用 vitest 模拟 next/router 进行单元测试? [已关闭]

问题描述 投票:0回答:1

当尝试为使用

useRouter()
钩子的 Next.js 应用程序编写简单测试时,
vitest
开始抛出错误。

寻找模拟 next/router 的方法,以使用 vitest 进行单元测试。

javascript node.js reactjs next.js vitest
1个回答
6
投票

经过一些研究和反复试验,我找到了模拟的方法

next/router

您需要为测试设置创建一个设置文件并配置

vitest
来使用它。

// vitest.config.js/ts
export default defineConfig({
  test: {
    environment: "jsdom",
    globals: true,
    setupFiles: ["vitestSetup.ts"],
  },
});

现在在根目录中创建

vitestSetup.ts
,并包含以下内容。

// vitestSetup.ts
import { beforeAll, vi } from "vitest";
beforeAll(() => {
  vi.mock("next/router", () => require("next-router-mock"));
})

恭喜!您已成功嘲笑

next/router

© www.soinside.com 2019 - 2024. All rights reserved.