如何使用vitest模拟next/router进行单元测试?

zvokhttg  于 2023-04-06  发布在  其他
关注(0)|答案(1)|浏览(194)

当尝试为使用useRouter()钩子的Next.js应用程序编写简单测试时,vitest开始抛出错误。
寻找用vitest模拟next/router进行单元测试的方法。

zfycwa2u

zfycwa2u1#

经过一些研究和反复试验,我找到了模拟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

相关问题