Best Kotest code snippet using com.sksamuel.kotest.runner.junit5.StringSpecEngineKitTest.Events.shouldHaveNames
StringSpecEngineKitTest.kt
Source:StringSpecEngineKitTest.kt  
1package com.sksamuel.kotest.runner.junit52import io.kotest.core.spec.IsolationMode3import io.kotest.core.spec.Spec4import io.kotest.core.spec.style.FunSpec5import io.kotest.core.spec.style.StringSpec6import io.kotest.core.test.TestCase7import io.kotest.core.test.TestResult8import io.kotest.matchers.collections.shouldBeEmpty9import io.kotest.matchers.collections.shouldContainExactly10import io.kotest.matchers.shouldBe11import org.junit.platform.engine.discovery.DiscoverySelectors.selectClass12import org.junit.platform.testkit.engine.EngineTestKit13import org.junit.platform.testkit.engine.Events14fun Events.shouldHaveNames(vararg names: String) =15   list().map { it.testDescriptor.displayName }.shouldContainExactly(*names)16fun Events.shouldBeEmpty() = list().shouldBeEmpty()17class StringSpecEngineKitTest : FunSpec({18   test("verify all events") {19      EngineTestKit20         .engine("kotest")21         .selectors(selectClass(StringSpecTestCase::class.java))22         .configurationParameter("allow_private", "true")23         .execute()24         .allEvents().apply {25            started().shouldHaveNames(26               "Kotest",27               "com.sksamuel.kotest.runner.junit5.StringSpecTestCase",28               "a failing test",29               "a passing test",30               "an erroring test",31            )32            skipped().shouldHaveNames("a skipped test")33            failed().shouldHaveNames(34               "a failing test",35               "an erroring test",36            )37            succeeded().shouldHaveNames(38               "a passing test",39               "com.sksamuel.kotest.runner.junit5.StringSpecTestCase",40               "Kotest",41            )42            finished().shouldHaveNames(43               "a failing test",44               "a passing test",45               "an erroring test",46               "com.sksamuel.kotest.runner.junit5.StringSpecTestCase",47               "Kotest",48            )49            aborted().shouldBeEmpty()50            dynamicallyRegistered().shouldHaveNames(51               "com.sksamuel.kotest.runner.junit5.StringSpecTestCase",52               "a failing test",53               "a passing test",54               "an erroring test",55               "a skipped test",56            )57         }58   }59   test("exception in initializer") {60      EngineTestKit61         .engine("kotest")62         .selectors(selectClass(StringSpecExceptionInInit::class.java))63         .configurationParameter("allow_private", "true")64         .execute()65         .allEvents().apply {66            count() shouldBe 867            started().shouldHaveNames(68               "Kotest",69               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInInit",70               "SpecInstantiationException",71            )72            skipped().shouldBeEmpty()73            failed().shouldHaveNames(74               "SpecInstantiationException",75               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInInit"76            )77            succeeded().shouldHaveNames("Kotest")78            finished().shouldHaveNames(79               "SpecInstantiationException",80               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInInit",81               "Kotest"82            )83            dynamicallyRegistered().shouldHaveNames(84               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInInit",85               "SpecInstantiationException",86            )87         }88   }89   test("exception in beforeSpec override") {90      EngineTestKit91         .engine("kotest")92         .selectors(selectClass(StringSpecExceptionInBeforeSpecOverride::class.java))93         .configurationParameter("allow_private", "true")94         .execute()95         .allEvents().apply {96            count() shouldBe 897            started().shouldHaveNames(98               "Kotest",99               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInBeforeSpecOverride",100               "Before Spec Error",101            )102            skipped().shouldBeEmpty()103            failed().shouldHaveNames(104               "Before Spec Error",105               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInBeforeSpecOverride"106            )107            succeeded().shouldHaveNames("Kotest")108            finished().shouldHaveNames(109               "Before Spec Error",110               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInBeforeSpecOverride",111               "Kotest"112            )113            dynamicallyRegistered().shouldHaveNames(114               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInBeforeSpecOverride",115               "Before Spec Error",116            )117         }118   }119   test("exception in beforeSpec function") {120      EngineTestKit121         .engine("kotest")122         .selectors(selectClass(StringSpecExceptionInBeforeSpecFunction::class.java))123         .configurationParameter("allow_private", "true")124         .execute()125         .allEvents().apply {126            started().shouldHaveNames(127               "Kotest",128               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInBeforeSpecFunction",129               "Before Spec Error",130            )131            skipped().shouldBeEmpty()132            failed().shouldHaveNames(133               "Before Spec Error",134               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInBeforeSpecFunction"135            )136            succeeded().shouldHaveNames("Kotest")137            finished().shouldHaveNames(138               "Before Spec Error",139               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInBeforeSpecFunction",140               "Kotest"141            )142            dynamicallyRegistered().shouldHaveNames(143               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInBeforeSpecFunction",144               "Before Spec Error",145            )146         }147   }148   test("exception in afterSpec override") {149      EngineTestKit150         .engine("kotest")151         .selectors(selectClass(StringSpecExceptionInAfterSpec::class.java))152         .configurationParameter("allow_private", "true")153         .execute()154         .allEvents().apply {155            count() shouldBe 14156            started().shouldHaveNames(157               "Kotest",158               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInAfterSpec",159               "a failing test",160               "a passing test",161               "After Spec Error",162            )163            skipped().shouldBeEmpty()164            failed().shouldHaveNames(165               "a failing test",166               "After Spec Error",167               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInAfterSpec",168            )169            succeeded().shouldHaveNames(170               "a passing test",171               "Kotest",172            )173            finished().shouldHaveNames(174               "a failing test",175               "a passing test",176               "After Spec Error",177               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInAfterSpec",178               "Kotest",179            )180            aborted().shouldBeEmpty()181            dynamicallyRegistered().shouldHaveNames(182               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInAfterSpec",183               "a failing test",184               "a passing test",185               "After Spec Error",186            )187         }188   }189   test("exception in afterSpec function") {190      EngineTestKit191         .engine("kotest")192         .selectors(selectClass(StringSpecExceptionInAfterSpecFunction::class.java))193         .configurationParameter("allow_private", "true")194         .execute()195         .allEvents().apply {196            count() shouldBe 14197            started().shouldHaveNames(198               "Kotest",199               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInAfterSpecFunction",200               "a failing test",201               "a passing test",202               "After Spec Error",203            )204            skipped().shouldBeEmpty()205            failed().shouldHaveNames(206               "a failing test",207               "After Spec Error",208               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInAfterSpecFunction",209            )210            succeeded().shouldHaveNames(211               "a passing test",212               "Kotest",213            )214            finished().shouldHaveNames(215               "a failing test",216               "a passing test",217               "After Spec Error",218               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInAfterSpecFunction",219               "Kotest",220            )221            aborted().shouldBeEmpty()222            dynamicallyRegistered().shouldHaveNames(223               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInAfterSpecFunction",224               "a failing test",225               "a passing test",226               "After Spec Error",227            )228         }229   }230   test("exception in beforeTest override") {231      EngineTestKit232         .engine("kotest")233         .selectors(selectClass(StringSpecExceptionInBeforeTest::class.java))234         .configurationParameter("allow_private", "true")235         .execute()236         .allEvents().apply {237            count() shouldBe 11238            started().shouldHaveNames(239               "Kotest",240               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInBeforeTest",241               "a failing test",242               "a passing test",243            )244            skipped().shouldBeEmpty()245            failed().shouldHaveNames(246               "a failing test",247               "a passing test",248            )249            succeeded().shouldHaveNames(250               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInBeforeTest",251               "Kotest"252            )253            finished().shouldHaveNames(254               "a failing test",255               "a passing test",256               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInBeforeTest",257               "Kotest",258            )259            aborted().shouldBeEmpty()260            dynamicallyRegistered().shouldHaveNames(261               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInBeforeTest", "a failing test", "a passing test"262            )263         }264   }265   test("exception in beforeTest function") {266      EngineTestKit267         .engine("kotest")268         .selectors(selectClass(StringSpecExceptionInBeforeTestFunction::class.java))269         .configurationParameter("allow_private", "true")270         .execute()271         .allEvents().apply {272            count() shouldBe 11273            started().shouldHaveNames(274               "Kotest",275               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInBeforeTestFunction",276               "a failing test",277               "a passing test"278            )279            skipped().shouldBeEmpty()280            failed().shouldHaveNames(281               "a failing test",282               "a passing test",283            )284            succeeded().shouldHaveNames(285               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInBeforeTestFunction",286               "Kotest"287            )288            finished().shouldHaveNames(289               "a failing test",290               "a passing test",291               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInBeforeTestFunction",292               "Kotest"293            )294            aborted().shouldBeEmpty()295            dynamicallyRegistered().shouldHaveNames(296               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInBeforeTestFunction",297               "a failing test",298               "a passing test"299            )300         }301   }302   test("ExceptionInInitializerError exception in beforeTest") {303      val fullyQualifiedTestClassName =304         "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInInitializerErrorInBeforeTestFunction"305      EngineTestKit306         .engine("kotest")307         .selectors(selectClass(StringSpecExceptionInInitializerErrorInBeforeTestFunction::class.java))308         .configurationParameter("allow_private", "true")309         .execute()310         .allEvents().apply {311            count() shouldBe 11312            started().shouldHaveNames(313               "Kotest",314               fullyQualifiedTestClassName,315               "a failing test",316               "a passing test"317            )318            skipped().shouldBeEmpty()319            failed().shouldHaveNames(320               "a failing test",321               "a passing test",322            )323            succeeded().shouldHaveNames(324               fullyQualifiedTestClassName,325               "Kotest"326            )327            finished().shouldHaveNames(328               "a failing test",329               "a passing test",330               fullyQualifiedTestClassName,331               "Kotest"332            )333            aborted().shouldBeEmpty()334            dynamicallyRegistered().shouldHaveNames(335               fullyQualifiedTestClassName,336               "a failing test",337               "a passing test"338            )339         }340   }341   test("exception in afterTest override") {342      EngineTestKit343         .engine("kotest")344         .selectors(selectClass(StringSpecExceptionInAfterTest::class.java))345         .configurationParameter("allow_private", "true")346         .execute()347         .allEvents().apply {348            count() shouldBe 11349            started().shouldHaveNames(350               "Kotest",351               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInAfterTest",352               "a failing test",353               "a passing test"354            )355            skipped().shouldBeEmpty()356            failed().shouldHaveNames(357               "a failing test",358               "a passing test",359            )360            succeeded().shouldHaveNames(361               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInAfterTest",362               "Kotest"363            )364            finished().shouldHaveNames(365               "a failing test",366               "a passing test",367               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInAfterTest",368               "Kotest"369            )370            aborted().shouldBeEmpty()371            dynamicallyRegistered().shouldHaveNames(372               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInAfterTest",373               "a failing test",374               "a passing test"375            )376         }377   }378   test("exception in afterTest function") {379      EngineTestKit380         .engine("kotest")381         .selectors(selectClass(StringSpecExceptionInAfterTestFunction::class.java))382         .configurationParameter("allow_private", "true")383         .execute()384         .allEvents().apply {385            count() shouldBe 11386            started().shouldHaveNames(387               "Kotest",388               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInAfterTestFunction",389               "a failing test",390               "a passing test"391            )392            skipped().shouldBeEmpty()393            failed().shouldHaveNames(394               "a failing test",395               "a passing test",396            )397            succeeded().shouldHaveNames(398               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInAfterTestFunction",399               "Kotest"400            )401            finished().shouldHaveNames(402               "a failing test",403               "a passing test",404               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInAfterTestFunction",405               "Kotest"406            )407            aborted().shouldBeEmpty()408            dynamicallyRegistered().shouldHaveNames(409               "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInAfterTestFunction",410               "a failing test",411               "a passing test"412            )413         }414   }415   test("exception in beforeSpec with isolation mode instance per leaf") {416      val fullyQualifiedTestClassName =417         "com.sksamuel.kotest.runner.junit5.StringSpecExceptionInBeforeSpecForInstancePerLeaf"418      EngineTestKit419         .engine("kotest")420         .selectors(selectClass(StringSpecExceptionInBeforeSpecForInstancePerLeaf::class.java))421         .configurationParameter("allow_private", "true")422         .execute()423         .allEvents().apply {424            started().shouldHaveNames(425               "Kotest",426               fullyQualifiedTestClassName,427               "Before Spec Error",428            )429            skipped().shouldBeEmpty()430            failed().shouldHaveNames(431               "Before Spec Error",432               fullyQualifiedTestClassName433            )434            succeeded().shouldHaveNames("Kotest")435            finished().shouldHaveNames(436               "Before Spec Error",437               fullyQualifiedTestClassName,438               "Kotest"439            )440            dynamicallyRegistered().shouldHaveNames(441               fullyQualifiedTestClassName,442               "Before Spec Error",443            )444         }445   }446})447private class StringSpecExceptionInBeforeSpecOverride : StringSpec() {448   init {449      "a failing test" {450         1 shouldBe 2451      }452      "a passing test" {453         1 shouldBe 1454      }455   }456   override suspend fun beforeSpec(spec: Spec) {457      throw RuntimeException("zopp!!")458   }459}460private class StringSpecExceptionInBeforeSpecFunction : StringSpec() {461   init {462      "a failing test" {463         1 shouldBe 2464      }465      "a passing test" {466         1 shouldBe 1467      }468      beforeSpec {469         throw RuntimeException("zopp!!")470      }471   }472}473private class StringSpecExceptionInAfterTest : StringSpec() {474   init {475      "a failing test" {476         1 shouldBe 2477      }478      "a passing test" {479         1 shouldBe 1480      }481   }482   override suspend fun afterTest(testCase: TestCase, result: TestResult) {483      throw RuntimeException("craack!!")484   }485}486private class StringSpecExceptionInAfterTestFunction : StringSpec() {487   init {488      "a failing test" {489         1 shouldBe 2490      }491      "a passing test" {492         1 shouldBe 1493      }494      afterTest {495         throw RuntimeException("craack!!")496      }497   }498}499private class StringSpecExceptionInAfterSpec : StringSpec() {500   init {501      "a failing test" {502         1 shouldBe 2503      }504      "a passing test" {505         1 shouldBe 1506      }507   }508   override suspend fun afterSpec(spec: Spec) {509      throw RuntimeException("splatt!!")510   }511}512private class StringSpecExceptionInAfterSpecFunction : StringSpec() {513   init {514      "a failing test" {515         1 shouldBe 2516      }517      "a passing test" {518         1 shouldBe 1519      }520      afterSpec {521         throw RuntimeException("splatt!!")522      }523   }524}525private class StringSpecExceptionInBeforeTest : StringSpec() {526   init {527      "a failing test" {528         1 shouldBe 2529      }530      "a passing test" {531         1 shouldBe 1532      }533   }534   override suspend fun beforeTest(testCase: TestCase) {535      throw RuntimeException("oooff!!")536   }537}538private class StringSpecExceptionInBeforeTestFunction : StringSpec() {539   init {540      "a failing test" {541         1 shouldBe 2542      }543      "a passing test" {544         1 shouldBe 1545      }546      beforeTest {547         throw RuntimeException("oooff!!")548      }549   }550}551private class StringSpecExceptionInInitializerErrorInBeforeTestFunction : StringSpec() {552   init {553      "a failing test" {554         1 shouldBe 2555      }556      "a passing test" {557         1 shouldBe 1558      }559      beforeTest {560         throw ExceptionInInitializerError("Unable to initialize")561      }562   }563}564private class StringSpecTestCase : StringSpec({565   "a failing test" {566      1 shouldBe 2567   }568   "a passing test" {569      1 shouldBe 1570   }571   "an erroring test" {572      throw RuntimeException()573   }574   "a skipped test".config(enabled = false) {575   }576})577private class StringSpecExceptionInInit : StringSpec({578   throw RuntimeException("kapow")579})580private class StringSpecExceptionInBeforeSpecForInstancePerLeaf : StringSpec({581   "a failing test" {582      1 shouldBe 2583   }584   "a passing test" {585      1 shouldBe 1586   }587}) {588   override fun isolationMode(): IsolationMode = IsolationMode.InstancePerLeaf589   override suspend fun beforeSpec(spec: Spec) {590      throw RuntimeException("zopp!!")591   }592}...Events.shouldHaveNames
Using AI Code Generation
1    import com.sksamuel.kotest.runner.junit5.StringSpecEngineKitTest2    import io.kotest.core.spec.style.StringSpec3    import io.kotest.matchers.shouldBe4    import io.kotest.matchers.shouldNotBe5    import io.kotest.matchers.string.shouldContain6    import io.kotest.matchers.string.shouldNotContain7    import io.kotest.matchers.string.shouldNotStartWith8    import io.kotest.matchers.string.shouldStartWith9    import io.kotest.matchers.types.shouldBeTypeOf10    import io.kotest.matchers.types.shouldNotBeTypeOf11    class ExampleTest : StringSpec({12        "should run all tests" {13            val events = StringSpecEngineKitTest.executeSpec(ExampleTest::class)14            events.shouldHaveNames(15        }16        "should start with should" {17        }18        "should not start with should" {19        }20        "should contain should" {21        }22        "should not contain should" {23        }24        "should be of type String" {25        }26        "should not be of type Int" {27        }28    })Events.shouldHaveNames
Using AI Code Generation
1    import com.sksamuel.kotest.runner.junit5.StringSpecEngineKitTest2    import io.kotest.core.events.TestResult3    import io.kotest.core.spec.style.StringSpec4    import io.kotest.matchers.shouldBe5    class MyTest : StringSpec({6        "should have names" {7            val results = executeTestsForClass(StringSpecEngineKitTest::class)8            results.shouldHaveNames("should have names", "should have names 2")9        }10        "should have names 2" {11            val results = executeTestsForClass(StringSpecEngineKitTest::class)12            results.shouldHaveNames("should have names", "should have names 2")13        }14    })Events.shouldHaveNames
Using AI Code Generation
1@DisplayName("StringSpec engine should have names") @Test fun `StringSpec engine should have names`() { Events.shouldHaveNames ( "StringSpec engine should have names" ) }2@DisplayName("StringSpec engine should have names") @Test fun `StringSpec engine should have names`() { Events.shouldHaveNames ( "StringSpec engine should have names" ) }3@DisplayName("StringSpec engine should have names") @Test fun `StringSpec engine should have names`() { Events.shouldHaveNames ( "StringSpec engine should have names" ) }4@DisplayName("StringSpec engine should have names") @Test fun `StringSpec engine should have names`() { Events.shouldHaveNames ( "StringSpec engine should have names" ) }5@DisplayName("StringSpec engine should have names") @Test fun `StringSpec engine should have names`() { Events.shouldHaveNames ( "StringSpec engine should have names" ) }6@DisplayName("StringSpec engine should have names") @Test fun `StringSpec engine should have names`() { Events.shouldHaveNames ( "StringSpec engine should have names" ) }7@DisplayName("StringSpec engine should have names") @Test fun `StringSpec engine should have names`() { Events.shouldHaveNames ( "StringSpec engine should have names" ) }8@DisplayName("StringSpec engine should have names") @Test fun `StringSpec engine should have names`() { Events.shouldHaveNames ( "StringSpec engine should have names" ) }Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
