用于集成测试的 Spring Boot @LocalServerPort 的 DotNet 替代方案

Posted

技术标签:

【中文标题】用于集成测试的 Spring Boot @LocalServerPort 的 DotNet 替代方案【英文标题】:DotNet alternative to spring boot @LocalServerPort for integration tests 【发布时间】:2021-01-27 19:16:08 【问题描述】:

我正在尝试测试 DotNet Core 应用程序的回调功能。我已经公开了我想在集成测试中调用的控制器。

我在https://docs.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-3.1 之后使用 xUnit 设置了集成测试 在测试中,我能够使用 WebApplicationFactory 准备客户端。可以使用此客户端调用所需的控制器。

但我关心的是如何从外部调用控制器。换句话说,它是否暴露在某个 localhost 端口上?我找不到这样的。 它没有监听 5000(我的 appsettings 中定义的端口)。它也没有监听端口 80(默认端口)。

我想拥有类似 spring boot @LocalServerPort 的东西并在测试中使用它。有这种可能吗?

【问题讨论】:

【参考方案1】:

如果有人想尝试,可以这样:https://github.com/dotnet/aspnetcore/issues/4892

【讨论】:

以上是关于用于集成测试的 Spring Boot @LocalServerPort 的 DotNet 替代方案的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 中的单元测试

Spring boot 和 Flyway:集成测试前清除数据库数据

在java Spring Boot中,如何在集成测试中将内存中的LDAPConnection对象传递给ldapService?

Spring Boot 集成swagger2

使用 Spring Boot 进行测试时仅从测试/资源中加载数据

Spring Boot教程14——集成测试