我試圖在每次測試之前找到設置變量的方法。就像Junit中的@Before方法一樣。通過kotlin-test的文檔,我發現我可以使用interceptTestCase()接口。但不幸的是,下面的代碼會引發異常:如何在每次測試之前使用kotlin-test框架初始化變量
kotlin.UninitializedPropertyAccessException: lateinit property text has not been initialized
class KotlinTest: StringSpec() {
lateinit var text:String
init {
"I hope variable is be initialized before each test" {
text shouldEqual "ABC"
}
"I hope variable is be initialized before each test 2" {
text shouldEqual "ABC"
}
}
override fun interceptTestCase(context: TestCaseContext, test:() -> Unit) {
println("interceptTestCase()")
this.text = "ABC"
test()
}
}
我是在錯誤的道路使用interceptTestCase()? 非常感謝〜
其實這不是理由。 'text shouldEqual「ABC」'不在'init'塊中調用,lambda包含'text shouldEqual「ABC」'只在那裏創建,不能運行。 – michalbrz