Kotlin Spek 测试中的常量



我想向我的 Spek 测试添加一些常量,以保存测试将像这样访问的一些资源文件的文件名。

这样做的惯用方法是什么?

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

那么有没有比这更好或更可取的方法:

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)
})

最新更新