如何在kotlintest中编写beforeach和beforeClass
这里给出的是来自的示例,但我没有看到beforeach或beforeClass的概念。我想了解如何在kotlintest中编写beforeach和beforeClass,kotlin,kotlintest,Kotlin,Kotlintest,这里给出的是来自的示例,但我没有看到beforeach或beforeClass的概念。我想了解 如何在每次测试前执行一次代码/方法 如何在每个测试类之前执行一次代码/方法 在对github文档和kotlin测试框架源代码进行了一些研究之后,下面是编写beforeTest、beforeSpec、PostTest和afterSpec的代码 class MyTest : StringSpec({ "test should run " { "Hello".shouldHav
- 如何在每次测试前执行一次代码/方法
- 如何在每个测试类之前执行一次代码/方法
在对github文档和kotlin测试框架源代码进行了一些研究之后,下面是编写beforeTest、beforeSpec、PostTest和afterSpec的代码
class MyTest : StringSpec({
"test should run " {
"Hello".shouldHaveLength(4)
}
"test2 should run " {
"Hello World".shouldHaveLength(10)
}
}) {
override fun beforeTest(description: Description) {
super.beforeTest(description)
println("Before every spec/test case")
}
override fun beforeSpec(description: Description, spec: Spec) {
super.beforeSpec(description, this)
println("Before every test suite")
}
override fun afterTest(description: Description, result: TestResult) {
super.afterTest(description, result)
println("After every spec/test case")
}
override fun afterSpec(description: Description, spec: Spec) {
super.afterSpec(description, spec)
println("After every test suite")
}
}
这看起来并不优雅,如果有任何方法可以让它变得优雅,请发布它。与您自己的答案@JTeam非常相似,但是使用init{}构造函数块来声明您的测试,然后您可以直接在类中重写方法
class MyTest : StringSpec() {
override fun beforeTest(description: Description) {
super.beforeTest(description)
println("Before every spec/test case")
}
override fun beforeSpec(description: Description, spec: Spec) {
super.beforeSpec(description, this)
println("Before every test suite")
}
override fun afterTest(description: Description, result: TestResult) {
super.afterTest(description, result)
println("After every spec/test case")
}
override fun afterSpec(description: Description, spec: Spec) {
super.afterSpec(description, spec)
println("After every test suite")
}
init {
"test should run " {
"Hello".shouldHaveLength(4)
}
"test2 should run " {
"Hello World".shouldHaveLength(10)
}
}
}
class MyTest : StringSpec() {
override fun beforeTest(description: Description) {
super.beforeTest(description)
println("Before every spec/test case")
}
override fun beforeSpec(description: Description, spec: Spec) {
super.beforeSpec(description, this)
println("Before every test suite")
}
override fun afterTest(description: Description, result: TestResult) {
super.afterTest(description, result)
println("After every spec/test case")
}
override fun afterSpec(description: Description, spec: Spec) {
super.afterSpec(description, spec)
println("After every test suite")
}
init {
"test should run " {
"Hello".shouldHaveLength(4)
}
"test2 should run " {
"Hello World".shouldHaveLength(10)
}
}
}