首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Axios - post方法响应本机,并使用body返回超时

使用Axios - post方法响应本机,并使用body返回超时
EN

Stack Overflow用户
提问于 2022-01-03 05:49:26
回答 1查看 163关注 0票数 0

我试图创建一个带有post请求的miragejs服务器,但是每次我打电话时都会收到超时。奇怪的是,get/delete端点返回很好,但是post/put端点无限期挂起,从而导致玩笑超时错误:

代码语言:javascript
复制
Timeout - Async callback was not invoked within the 5000 ms timeout specified by jest.setTimeout.Timeout - Async callback was not invoked within the 5000 ms timeout specified by jest.setTimeout.Error

我的miragejs服务器文件:

代码语言:javascript
复制
import { createServer } from "miragejs";

export function startTestAPIServer() { 
    return createServer({
        namespace: "/testing",
        routes() {
            this.get("/test", (schema) => {
                console.log("recieved request!")
                return {"foo": "get testing"}
            });

            this.post("/test", (schema, request) => {
                return {"foo": "post testing"}
            })
        }
    });
}

我的测试文件:

代码语言:javascript
复制
import { startTestAPIServer } from "../../content/mockAPI/testAPI"
import axios from "axios"

// initiate test server
let server;

beforeEach(() => {
  server = startTestAPIServer();
})

afterEach(() => {
  server.shutdown();
})


describe("testAPI", () => {
  it("returns get request", async () => {
    var data;
    await axios
        .get("/testing/test")
        .then((res) => data = res.data)
        .catch((err) => console.log(err));
    expect(data).toEqual({"foo": "get testing"});
  })

  it("returns post request", async () => { 
    var data;
    await axios
        .post("/testing/test", {})
        .then((res) => data = res.data)
        .catch((err) => console.log(err));
      
    expect(data).toEqual({"foo": "post testing"});
  })
})

第一种情况过去,而第二种情况失败。我不知道我做错了什么会导致这样的事情。我很确定这不是axios引起的问题,因为我已经记录了它的请求和返回,并且只有请求被记录下来。我还确信端点实际上正在被击中,因为控制台日志将从端点代码块中打印出来,因此由于某种原因它不会返回。不确定这是否相关,但我也在运行react本机。

EN

回答 1

Stack Overflow用户

发布于 2022-01-04 05:03:08

这是海市蜃楼当前的问题,请参阅这里。cesar-medina-25通过在jest安装文件中添加以下内容找到了一个修复程序。

代码语言:javascript
复制
function FormDataMock() {
  this.append = function () {};
}
global.FormData = FormDataMock;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70562089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档