Typescript 开玩笑+;supertest e2e对向其他端点发出HTTP请求的API端点的测试

Typescript 开玩笑+;supertest e2e对向其他端点发出HTTP请求的API端点的测试,typescript,jestjs,microservices,e2e-testing,supertest,Typescript,Jestjs,Microservices,E2e Testing,Supertest,我正在使用jest和supertest测试我的API端点。api端点在带有typescript的express中实现。我要处理的问题是,我的应用程序被设置为微服务,其中一些端点向其他端点发出HTTP请求。为了进行这些测试,所有这些微服务都安装在同一个应用程序中 所以我用 const res = await request(app) .get(endpoint) .set('Authorization', authorization); expect(res.sta

我正在使用jest和supertest测试我的API端点。api端点在带有typescript的express中实现。我要处理的问题是,我的应用程序被设置为微服务,其中一些端点向其他端点发出HTTP请求。为了进行这些测试,所有这些微服务都安装在同一个应用程序中

所以我用

const res = await request(app)
      .get(endpoint)
      .set('Authorization', authorization);
    expect(res.status).toEqual(200);

获取我的端点。但这会返回状态代码500和错误
error:connect-econnrefered127.0.0.1:8999
。端点确实向同一主机上的另一个端点发出HTTP请求。我猜supertest实际上并没有启动整个应用程序,因此其他api端点不可用?有办法解决这个问题吗?我不想模拟另一个端点,因为这应该是一个端到端测试。Unittests也可用,但现在我正在编写e2e快照测试。

问题在于端口号,它在配置中定义,但Supertest使用随机端口号来运行应用程序。但您也可以将正在运行(侦听)的应用程序传递给supertest的
请求
,这样您就可以使用
请求(app.listen(portnum)).get(endpoint)