kotest
kotlinでテストFWを増やしている
Listenerの確認
beforeAnyとbeforeTest, afterAnyとafterTestは同じらしいので一つにまとめます
import io.kotest.core.spec.style.DescribeSpec
import io.kotest.matchers.shouldBe
class ListenerSpec: DescribeSpec({
describe("listener hook check") {
beforeContainer {
println("beforeContainer")
}
afterContainer {
println("afterContainer")
}
beforeEach {
println("beforeEach")
}
afterEach {
println("afterEach")
}
beforeTest {
println("beforeAny/beforeTest")
}
afterTest {
println("afterAny/afterTest")
}
beforeSpec {
println("beforeSpec")
}
afterSpec {
println("afterSpec")
}
context("Simple") {
it("Simple test") {
println("--- Simple test")
1 shouldBe 1
}
}
}
})
beforeContainer
beforeAny/beforeTest
beforeEach
beforeAny/beforeTest
--- Simple test
afterEach
afterAny/afterTest
afterContainer
afterAny/afterTest
afterSpec
- before, afterともに
Container > Any/Test,Each > Any/Testの流れになっている- beforeとafterでstackの様にコールされるわけではない
- beforeSpecが呼び出されない
- 詳細を調べる
class ListenerSpec: DescribeSpec({
// ...
describe("listener hook check") {
describe("Describe") {
it("Simple test") {
println("--- Simple test")
1 shouldBe 1
}
}
}
})
beforeContainer
beforeAny/beforeTest
beforeEach
beforeAny/beforeTest
--- Simple test
afterEach
afterAny/afterTest
afterContainer
afterAny/afterTest
afterSpec
- Listener順序において、describeとcontextの差異は見られない
class ListenerSpec: DescribeSpec({
describe("listener hook check") {
describe("Describe") {
it("List 1 test") {
println("--- List-1 test")
1 shouldBe 1
}
it("List 2 test") {
println("--- List-2 test")
1 shouldBe 1
}
}
}
})
beforeContainer
beforeAny/beforeTest
beforeEach
beforeAny/beforeTest
--- List-1 test
afterEach
afterAny/afterTest
beforeEach
beforeAny/beforeTest
--- List-2 test
afterEach
afterAny/afterTest
afterContainer
afterAny/afterTest
afterSpec
- Containerが消えた
class ListenerSpec: DescribeSpec({
// ...
describe("listener hook check") {
describe("Describe") {
context("Context") {
it("Simple test") {
println("--- Simple test")
1 shouldBe 1
}
}
}
}
})
beforeContainer
beforeAny
beforeTest
beforeContainer
beforeAny
beforeTest
beforeEach
beforeAny
beforeTest
--- Simple test
afterEach
afterAny
afterTest
afterContainer
afterAny
afterTest
afterContainer
afterAny
afterTest
afterSpec
- nestするとcontainer, any, testが追加される
class ListenerSpec: DescribeSpec({
describe("listener hook check") {
describe("Describe") {
describe("Describe") {
it("Simple test") {
println("--- Simple test")
1 shouldBe 1
}
}
}
}
})
beforeContainer
beforeAny
beforeTest
beforeContainer
beforeAny
beforeTest
beforeEach
beforeAny
beforeTest
--- Simple test
afterEach
afterAny
afterTest
afterContainer
afterAny
afterTest
afterContainer
afterAny
afterTest
afterSpec