【发布时间】:2021-05-15 06:59:42
【问题描述】:
我正在 Node.js (NestJS) 中开发一个 API,并有一个调用两个异步服务的端点。等待第一个,其结果在响应中返回。第二个在后台运行,其状态在数据库中存储和更新。
类似这样的:
@Post()
async test(): Promise<CustomResponse> {
const result = await firstAsyncService();
this.secondAsyncService(result);
return result;
}
在这种情况下编写 e2e 测试的常用方法是什么?我正在使用 jest,到目前为止,我只是对测试结果做出断言。
it('test', async () => {
const response = await request(app.getHttpServer())
.post('/test')
.send({});
expect(response).toEqual(something)
});
【问题讨论】:
-
最终用户如何得知后台任务已完成?
-
通过轮询另一个通过 id 返回任务状态的端点。
-
那你考虑过吗?
-
我想过轮询直到完成,但感觉不对
-
为什么不呢?您应该在消费者使用它们时对其进行测试,否则您将与实现过于耦合。
标签: node.js typescript jestjs nestjs