我目前正在为 SpringBootTest 实例的服务器端口注入而苦苦挣扎。我写了一个测试配置类,我想访问这个端口。
测试配置类:
@Target(AnnotationTarget.CLASS, AnnotationTarget.FILE)
@Retention(AnnotationRetention.RUNTIME)
@Import(value = [TestTemplateConfig::class])
annotation class TestAnnotation
@Configuration
open class TestTemplateConfig {
@Value("\${server.port}")
private var localPort: Int? = null
@Bean
open fun foo() = Foo(localPort)
}
测试看起来像这样:
@SpringBootJunit5Test
@TestAnnotation
@EnableTestCouchbase
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
class MyIntegrationTest {
@LocalServerPort
var port: Int = 0
@Autowired
private lateinit var foo: Foo
...
}
现在的问题是,我总是收到配置类中端口的零值。因为我没有得到 null 这听起来像是在获取端口但错误的端口(我认为零是在春季为随机端口定义的)。到目前为止,MyIntegrationTest 类中的服务器端口评估工作正常。
有什么想法可以解决这个问题吗?
谢谢