MSW 模拟服务器测试,如何才能通过?

问题描述

所以我在前端使用 React/redux,我正在尝试测试提交的表单是否将 redux 操作分派到服务器。 我正在尝试使用 MSW 模拟服务器并查看它是否已被调用,但它似乎无法正常工作。

form.test.tsx

test("dispatches createProfile action on submit",async () => {
    const testServer = setupServer()

    let req: any;
    testServer.use(
      rest.post("http://localhost:8000/profile",(_req,res,ctx) => {
        req = _req;
        return res(ctx.status(200));
      }),);

    const mockEmail = "123@mock.com";

    render(
      <browserRouter>
        <Form />
      </browserRouter>,);

    userEvent.type(screen.getByRole("textBox",{ name: "email" }),mockEmail);
    userEvent.click(screen.getByTestId("submit-button"));

    await waitFor(() => {
      expect(req).toBeTruthy(); //This is failing
    });
 });

所以基本上 req 应该是真实的。 我已经对端点进行了三次检查,并从高级开发人员那里查看了一些其他示例,并遵循(复制)了它。 我也试过 testServer.resetHandlers()

我似乎无法让它工作。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)