0

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

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

在 JUnit 中,我会声明一个static final值。但是在 Spek 中,我什至不能使用 a 的典型 kotlin 惯用语companion object来保存它们,因为 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
})
4

1 回答 1

1

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

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)

})
于 2018-04-05T17:13:51.490 回答