Testland
Browse all skills & agents

qa-unit-tests-jvm

JVM unit testing per-framework wrappers: 6 skills (assertj, junit5-tests, kotest-tests, scalatest, spock-tests, testng-tests) and 2 agents (jvm-framework-selector, jvm-test-author).

Install this plugin

/plugin install qa-unit-tests-jvm@testland-qa

Part of role bundle: qa-role-sdet

qa-unit-tests-jvm

JVM unit testing per-framework wrappers. Five skills covering Java + Kotlin + Scala + Groovy test frameworks, plus one orchestrator that authors a single test per spec by detecting the framework convention from the project's build file.

Per-framework lifecycle scope. Does not duplicate qa-test-review (test code hygiene).

Components

TypeNameDescription
Skilljunit5-testsJUnit 5 (Jupiter); modern JVM standard; @Test/@ParameterizedTest/@RepeatedTest; extension model
Skillkotest-testsKotlin-native; multi-style (StringSpec/FunSpec/BehaviorSpec); built-in property-based
Skillspock-testsGroovy BDD; given/when/then blocks; data tables; built-in mocking
Skilltestng-testsTest method dependencies; groups; suite XML; legacy + Selenium-tradition
SkillscalatestScala-native; multi-style (FlatSpec/FunSuite/WordSpec); ScalaCheck pairing
Agentjvm-test-authorAuthors one JVM unit test per spec; detects JUnit 5 / TestNG / Kotest / Spock / ScalaTest from pom.xml / build.gradle[.kts] / build.sbt; pairs with AssertJ when present
Agentjvm-framework-selectorReads pom.xml/build.gradle/build.sbt + language and recommends one JVM test framework (JUnit 5 / TestNG / Kotest / Spock / ScalaTest).
SkillassertjAssertJ fluent assertions for JVM tests: assertThat, collection/exception/soft assertions, recursive comparison, custom assertions.

Install

/plugin marketplace add testland/qa
/plugin install qa-unit-tests-jvm@testland-qa

Skills

assertj

Reference for AssertJ - the canonical JVM fluent-assertion library pairable with JUnit 5 / TestNG / Spock; covers the assertThat() entry point, collection matchers (contains, containsExactly, allSatisfy, extracting), exception assertions (assertThatThrownBy, catchThrowable), SoftAssertions for multi-failure collection, recursive comparison (usingRecursiveComparison) for deep equality, and domain-specific custom assertions via AbstractAssert. Use when writing JVM tests that need richer failure messages than built-in assertEquals, or when verifying complex object graphs, exception types, or collections.

junit5-tests

Configures and runs JUnit 5 (Jupiter) - modern JVM testing platform with annotations (`@Test` / `@ParameterizedTest` / `@RepeatedTest` / `@TestFactory`), lifecycle hooks (`@BeforeAll` / `@BeforeEach` / `@AfterEach` / `@AfterAll`), extension model (`@ExtendWith`), display names (`@DisplayName`), conditional execution (`@EnabledOnOs`, `@EnabledIf`), parallel execution config; integrates with Maven Surefire / Gradle test task / IntelliJ. Use when the user works with Java / Kotlin codebases needing the modern JVM standard.

kotest-tests

Configures and runs Kotest - Kotlin-native test framework with multiple specification styles (StringSpec, FunSpec, BehaviorSpec, DescribeSpec, ShouldSpec, FreeSpec, FeatureSpec, ExpectSpec, AnnotationSpec); rich matcher library; built-in property-based testing (alternative to jqwik); coroutines support; data-driven testing; isolation modes per-spec or per-test; integrates with Gradle JVM test task. Use when working with Kotlin and wanting Kotlin-idiomatic DSL over JUnit 5's annotation-driven approach. Matchers (shouldBe, shouldContain) are bundled with the runner and are not a drop-in replacement for a standalone JVM assertion library; for assertion-only use paired with JUnit 5 / TestNG / Spock see assertj.

scalatest

Configures and runs ScalaTest - Scala-native test framework with multiple specification styles (FlatSpec, FunSuite, WordSpec, FreeSpec, AsyncFlatSpec for async); Matchers DSL (`should equal`, `should contain`, `shouldBe a [Class]`); integrates with ScalaCheck for property-based testing; sbt + Maven + Gradle support; tagged-test selective execution. Use when working with Scala codebases.

spock-tests

Configures and runs Spock - Groovy-based JVM testing framework with given/when/then BDD blocks, where: data tables for parametrized tests, built-in mocking via Mock()/Stub()/Spy(), interaction-based testing (verify method calls in declarative DSL), implicit assertions in then: blocks. Use when working with Java/Kotlin codebases that benefit from Groovy DSL expressiveness, or maintaining existing Spock projects.

testng-tests

Configures and runs TestNG - JVM testing framework with `@Test` priorities + groups + `dependsOnMethods`; `@DataProvider` for parametrized tests with method-level data sources; `testng.xml` suite definitions for grouping + parallelism config; listeners (`ITestListener`, `ISuiteListener`) for hooks; `ITestContext` for cross-test state; integrates with Maven Surefire / Gradle. Use when working with legacy TestNG codebases or needing TestNG-specific features (test method dependencies, suite-level XML config).