Kotlin Spek 测试中的常量

Constants in Kotlin Spek Tests

我想在我的 Spek 测试中添加一些常量来保存测试将访问的一些资源文件的文件名,例如

执行此操作的惯用方法是什么?

在 JUnit 中,我会声明一个 static final 值。但是在 Spek 中,我什至不能使用 companion object 的典型 kotlin idoim 来保存它们,因为 Spek 测试本身就是对象,不能有同伴。我什至无法将它们标记为 const,因为我收到错误消息“修饰符 'const' 不适用于 'local variable'。

那么有没有比这更好或更优选的方式:

object MyTest : Spek({
   val SAMPLE_GRAPH_FILENAME1 = "sample_graph1.png"
   val SAMPLE_GRAPH_FILENAME2 = "sample_graph2.png"
   val SAMPLE_OTHER_FILENAME = "sample_data.txt"

   // test code
})

您可以将常量放在该对象的主体内,但您必须在它们前面加上对象的名称才能访问它们:

object MyTest : Spek({

    println(MyTest.SAMPLE_GRAPH_FILENAME1)

}) {
    const val SAMPLE_GRAPH_FILENAME1 = "sample_graph1.png"
}

或者,您可以让另一个对象保存这些常量,或者只是将它们打包(或文件,private)作用域:

const val SAMPLE_GRAPH_FILENAME1 = "sample_graph1.png"

object MyTest : Spek({

    println(SAMPLE_GRAPH_FILENAME1)

})