我想向我的 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)
})