向其他端点发出HTTP请求的API端点的jest + supertest e2e测试

问题描述 投票:0回答:1

我正在通过玩笑和超级测试来测试我的API端点。 api端点是使用typescript快速实现的。我要解决的问题是我的应用程序设置为微服务,其中某些端点向其他端点发出HTTP请求。为了进行这些测试,所有这些微服务都安装在同一应用程序中。

所以我正在使用

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

获取我的端点。但这会返回statusCode 500和错误Error: connect ECONNREFUSED 127.0.0.1:8999。端点确实向同一主机上的另一个端点发出HTTP请求。我猜supertest并没有真正启动整个应用程序,因此其他api端点不可用?有办法解决吗?我不想模拟另一个端点,因为这应该是一个端到端的测试。单元测试也可用,但是现在我正在编写e2e快照测试。

typescript jestjs microservices e2e-testing supertest
1个回答
0
投票

问题是端口号,该端口号在config中定义,但Supertest使用随机端口号在其上运行该应用程序。但您也可以将正在运行的(监听)应用程序传递给超级测试的request,因此您可以只使用request(app.listen(portnum)).get(endpoint)

© www.soinside.com 2019 - 2024. All rights reserved.