如何在 NextJS 中测试使用应用程序路由器创建的路由?我为此使用 vitest

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

我正在尝试在下一个 js 14.1.0 上使用 vitest 测试路由。这可能吗?我没有找到任何相关信息。

我期待一些想法来在我的项目中实现这些测试,就像我在其他项目中使用 jest 和 React router 所做的那样。

javascript testing next.js vitest app-router
1个回答
0
投票

如果您正在谈论路由处理程序中的路由,您可以使用node-mocks-http包来测试您的路由,该包将模拟对端点发出的请求。这是一个例子:

// @vitest-environment node

import { expect, test } from "vitest";
import { createRequest } from "node-mocks-http";

import { GET } from "app/api/users/route";

test("User endpoint works as expected", async () => {
  const source = "/tests/login.test.ts";

  const nextUrl = new URL(source, process.env.HOST);
  const request = createRequest({ method: "GET", url: "/api/users" });
  const response = await GET({ ...request, nextUrl } as any);

  expect(response.status).toBe(200);
  // ...
});

正如您在上面的测试中看到的,我们创建了一个模拟 http 请求,并将其直接传递给路由处理函数,而不需要实际的 HTTP 请求。

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