【发布时间】:2022-01-06 23:58:37
【问题描述】:
目标
在我的设置中,我有两个应用程序。应用程序 A(来自第三方)接收用户输入,对其进行处理,然后通过 POST 将处理后的数据发送到应用程序 B(我的 nestjs 服务器)。我想运行一个集成测试,我想根据用户输入验证应用程序 B 的内部变量。为此,我想在 B 中定义执行以下步骤的测试:
- 将预定义的用户输入发送给 A
- 收到来自 A 的 POST
- 做一些处理
- 验证处理
在 B 中定义测试应该可以检查集成测试的代码覆盖率。如果我编写另一个从外部测试的应用程序,我就无法做到这一点。
问题
我没有找到任何方法如何在开玩笑测试中接收外部 http 请求。我的方法是创建一个带有控制器的模块,然后监听端口。比如这样的
describe('Integration Test', () => {
beforeAll(async () => {
const testingModule: TestingModule = await Test.createTestingModule(
{
imports: [HttpModule],
providers: [IntegrationTestService],
controllers: [IntegrationTestController],
},
).compile();
await testingModule.listen(3000);
// here I define my tests
});
}
但是 TestingModule 不提供“监听”功能。我也没有使用通过NestFactory.create(IntegrationTestModule) 创建的预定义普通模块使其工作。
欢迎提出任何建议!
【问题讨论】:
-
@JayMcDoniel 感谢您的建议!我遇到了另一个不相关的错误,但是当我解决它时,它终于起作用了。如果您想重新发布您的建议,我会批准。
标签: jestjs controller nestjs integration-testing code-coverage