| name | add-missing-unit-test |
| description | Add a new unit test for a class that currently lacks one or add a new test case to an existing test file, verifying improvement with Kover. |
Skill: Add Missing Unit Test
You are tasked with adding a new unit test for a class that currently lacks one, or adding a new test case to an existing test file, to improve code coverage and reliability.
Objective
Add a new unit test for a class that currently lacks one, or add a new test case to an existing test file, to improve code coverage and reliability.
Workflow Instructions
1. Identify Target
- Choose a class in
src/ that has complex logic but logic coverage is missing or incomplete.
2. Establish Baseline
- Run
./gradlew testClasses to compile all sources (production and test) and ensure the project is in a valid state.
- Run
./gradlew verifyPlugin to ensure no plugin verification issues exist.
- Run
./gradlew test (or specific test if it exists) to establish current pass/fail status.
- Run tests with Kover (
./gradlew koverHtmlReport or ./gradlew koverXmlReport) to determine current coverage percentage for target class.
3. Implement Test
- Create a new test class (
[ClassName]Test) in testSrc/ if it doesn't exist.
- Add test cases to cover specific methods, edge cases, and branches.
- Ensure the test follows project testing conventions (naming, mocking, assertions).
4. Verify
- Run
./gradlew testClasses to ensure new test compiles.
- Run new test (and related tests) to ensure it passes.
- Run
./gradlew verifyPlugin to ensure no regressions in plugin verification.
- Run Kover again to confirm coverage improvement.
5. Report & Review
- Summarize test added and coverage improvement.
- Test Location: Explicitly state where in the IDE user should go to test changed functionality (e.g., "Run the new test file
[TestFileName]").
- Action: Ask user to review new test closely. Validate that code being tested is actively used (e.g., check that it is not dead code/0 references).
- Do not commit or push.
- Provide a suggested Git commit message, explicitly including the Kover coverage improvement:
- Example Pattern:
Add unit tests for [Class Name]. Coverage verified using Kover. Coverage improvement: [Class Name]: ~[X]% line coverage ([Y] covered, [Z] uncovered).