我正在尝试在下一个 js 14.1.0 上使用 vitest 测试路由。这可能吗?我没有找到任何相关信息。
我期待一些想法来在我的项目中实现这些测试,就像我在其他项目中使用 jest 和 React router 所做的那样。
如果您正在谈论路由处理程序中的路由,您可以使用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 请求。