тесты записи с помощью Струнный Spec:Можно ли получить строку в выражении лямбда?
class stl : StringSpec() {
init {
"triangle.stl" {
...
}
}
}
Можно ли получить "triangle.stl"
внутри лямбда-выражения?
тесты записи с помощью Струнный Spec:Можно ли получить строку в выражении лямбда?
class stl : StringSpec() {
init {
"triangle.stl" {
...
}
}
}
Можно ли получить "triangle.stl"
внутри лямбда-выражения?
Это не выглядит, как StringSpec
предоставляет эту информацию, но вы можете продлить StringSpec
, чтобы сделать это. например .:
class Spec : StringSpec() {
init {
"triangle.stl" { testCase ->
println(testCase.name)
}
}
operator fun String.invoke(test: (TestCase) -> Unit): TestCase {
var tc: TestCase? = null
tc = invoke(fun() { test(tc!!) })
return tc
}
}
Или, чтобы избежать функции конфликтов с exsting String.invoke
вы можете продлить его со своим собственным синтаксисом. например:
class Spec : StringSpec() {
init {
"triangle.stl" testCase {
println(name)
}
}
infix fun String.testCase(test: TestCase.() -> Unit): TestCase {
var tc: TestCase? = null
tc = invoke { test(tc!!) }
return tc
}
}
Вам нужно будет хранить ссылку на строку самостоятельно. Что-то вроде
class stl : StringSpec() {
init {
val spek = "triangle.stl"
spek {
// use spek in here
}
}
}