DescribeSpec
Describe runs once:
Describe runs once: in this example 'counter' will be '1'
From describe-runs-once
Go to text ā
Code
package com.glassthought.sandbox
import io.kotest.core.spec.style.DescribeSpec
class DescribeSpecExample : DescribeSpec({
var counter = 0
describe("Counter example for DescribeSpec") {
counter++
println("Counter in describe: $counter")
it("First IT block") {
println("Counter in First IT: $counter")
}
it("Second IT block") {
println("Counter in Second IT: $counter")
}
describe("Nested Describe") {
it("Nested IT block") {
println("Counter in Nested IT: $counter")
}
}
}
})
Command to reproduce:
gt.sandbox.checkout.commit 581c4a01f0e91e73f0e4 \
&& cd "${GT_SANDBOX_REPO}" \
&& cmd.run.announce "./gradlew test --rerun-tasks"
Recorded output of command:
com.glassthought.sandbox.DescribeSpecExample > Counter example for DescribeSpec STANDARD_OUT
Counter in describe: 1
com.glassthought.sandbox.DescribeSpecExample > Counter example for DescribeSpec > First IT block STARTED
com.glassthought.sandbox.DescribeSpecExample > Counter example for DescribeSpec > First IT block STANDARD_OUT
Counter in First IT: 1
com.glassthought.sandbox.DescribeSpecExample > Counter example for DescribeSpec > First IT block PASSED
com.glassthought.sandbox.DescribeSpecExample > Counter example for DescribeSpec > Second IT block STARTED
com.glassthought.sandbox.DescribeSpecExample > Counter example for DescribeSpec > Second IT block STANDARD_OUT
Counter in Second IT: 1
com.glassthought.sandbox.DescribeSpecExample > Counter example for DescribeSpec > Second IT block PASSED
com.glassthought.sandbox.DescribeSpecExample > Counter example for DescribeSpec > Nested Describe > com.glassthought.sandbox.DescribeSpecExample.Nested IT block STARTED
com.glassthought.sandbox.DescribeSpecExample > Counter example for DescribeSpec > Nested Describe > com.glassthought.sandbox.DescribeSpecExample.Nested IT block STANDARD_OUT
Counter in Nested IT: 1
If you want code to execute per it() use beforeTest
Counter is incremented with 'beforeTest'
Code
package com.glassthought.sandbox
import io.kotest.core.spec.style.DescribeSpec
var counter = 0
class DescribeSpecExample : DescribeSpec({
describe("Counter example for DescribeSpec") {
beforeTest {
counter++
}
println("Counter in outer describe: $counter")
it("First IT block") {
println("Counter in First IT: $counter")
}
it("Second IT block") {
println("Counter in Second IT: $counter")
}
describe("Nested Describe") {
println("Counter in nested describe: $counter")
it("Nested IT block-1") {
println("Counter in Nested IT-1: $counter")
}
it("Nested IT block") {
println("Counter in Nested IT-2: $counter")
}
}
}
})
Command to reproduce:
gt.sandbox.checkout.commit 92ede4c421dde74fb8c2 \
&& cd "${GT_SANDBOX_REPO}" \
&& cmd.run.announce "./gradlew test --rerun-tasks"
Recorded output of command:
Counter in outer describe: 0
Counter in First IT: 1
Counter in Second IT: 2
Counter in nested describe: 3
Counter in Nested IT-1: 4
Counter in Nested IT-2: 5
BUILD SUCCESSFUL in 1s
3 actionable tasks: 3 executed
Children