我正在尝试使用发布请求创建 miragejs 服务器,但每次拨打电话时都会收到超时。奇怪的是,get/delete 端点返回正常,但 post/put 端点无限期挂起,导致开玩笑超时错误:
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 服务器文件:
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"}
})
}
});
}
我的测试文件:
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 导致了这个问题,因为我已经记录了它的请求并返回,并且只记录了请求。我也确定端点实际上被击中,因为控制台日志将从端点代码块中打印,它根本不会由于某种原因返回。不确定它是否相关,但我也在使用本机反应。