【发布时间】:2020-11-24 09:56:56
【问题描述】:
有一个单元测试类,在构造中定义了一些参数
class VersionConsumerSpec {
private val path = Paths.get("target").toAbsolutePath().toString()
private val kafkaPort = (4000..8000).random()
private val zooKeeperPort = (4000..8000).random()
private val config: AppConfig = createAppConfig(kafkaPort)
private val producer = createKafkaProducer()
init {
println("hello world")
}
@ExperimentalCoroutinesApi
@ObsoleteCoroutinesApi
@Test
@DisplayName("test1")
fun test1() {
}
@ExperimentalCoroutinesApi
@ObsoleteCoroutinesApi
@Test
@DisplayName("test2")
fun test2() {
}
}
每次测试都会执行所有定义的变量,即使init在这里也执行了两次。
然后我遇到了问题,因为我想为所有测试用例声明所有这些变量。
我在这里出了点问题?在 Java 或 Scala 中这不会发生。
就像如果对于每个测试,类都会一次又一次地完全实例化。
【问题讨论】:
-
您使用哪个库进行单元测试?是junit吗?如果是的话请添加到标签中
-
它是 Jupiter-api 5.6.2 “添加到标签”是什么意思???
-
我的意思是在问题中添加
junit或junit-jupiter标签 -
您是否尝试使用@BeforeAll 注解来初始化变量? junit.org/junit5/docs/5.0.2/api/org/junit/jupiter/api/…
标签: kotlin junit junit-jupiter