// package Ġcom . sk sam uel . kot est . listeners Ċ // Ċ // import Ġio . kot est . core . spec . Isolation Mode Ċ // import Ġio . kot est . core . test . TestCase Ċ // import Ġio . kot est . core . test . TestResult Ċ // import Ġio . kot est . core . spec . style . Fun Spec Ċ // import Ġio . kot est . core . spec . Spec Configuration Ċ // import Ġio . kot est . shouldBe Ċ // import Ġjava . util . concurrent . atomic . Atomic Integer Ċ // import Ġkotlin . reflect . K Class Ċ // Ċ // class ĠTest Listener Before Spec Test Ġ: ĠFun Spec () Ġ{ Ċ // Ċ // ĠĠ Ġcompanion Ġobject Ġ{ Ċ // ĠĠĠĠĠ Ġprivate Ġval Ġcounter Ġ= ĠAtomicInteger ( 0 ) Ċ // ĠĠ Ġ} Ċ // Ċ // ĠĠ Ġoverride Ġfun Ġisolation Mode (): ĠI sol ation Mode Ġ= ĠI sol ation Mode . Instance Per Test Ċ // Ċ // ĠĠ Ġ// Ġthis Ġshould Ġbe Ġinvoked Ġfor Ġevery Ġspec Ġinstance Ċ // ĠĠ Ġoverride Ġfun Ġbefore Spec ( spec : ĠSpec Configuration ) Ġ{ Ċ // ĠĠĠĠĠ Ġcounter . increment AndGet () Ċ // ĠĠ Ġ} Ċ // Ċ // ĠĠ Ġoverride Ġfun Ġfinalize Spec ( k class : ĠK Class < out ĠSpec Configuration >, Ġresults : ĠMap < TestCase , ĠTest Result >) Ġ{ Ċ // ĠĠĠĠĠ Ġcounter . get () ĠshouldBe Ġ 4 Ċ // ĠĠ Ġ} Ċ // Ċ // ĠĠ Ġinit Ġ{ Ċ // Ċ // ĠĠĠĠĠ Ġtest (" a ") Ġ{ Ġ} Ċ // ĠĠĠĠĠ Ġtest (" b ") Ġ{ Ġ} Ċ // ĠĠĠĠĠ Ġtest (" c ") Ġ{ Ġ} Ċ // ĠĠĠĠĠ Ġtest (" d ") Ġ{ Ġ} Ċ // ĠĠ Ġ} Ċ //} Ċ