Skip to content
Back to skills

Kotlin Testing

ASecurity

Use when kotlin testing patterns with Kotest, MockK, coroutine testing, property-based testing, and Kover coverage. Follows TDD methodology with idiomatic Kotlin practices. Only for Kotlin — not for other languages. Triggers on \"kotlin-testing\", \"kotlin testing\", \"testing\".

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 19, 2026
ai-agentspythongokotlinbashtesting

Security analysis

A100/100

Pro scans all 7 files and shows the line behind each finding

Scanned September 19, 2026

npx -y skills add majinmagros/magros.ai-skills --skill kotlin-testing --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Kotlin Testing?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Kotlin Testing
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majinmagros-kotlin-testing/badge)](https://www.skillsdirectory.com/skills/majinmagros-kotlin-testing)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: kotlin-testing
description: "Use when kotlin testing patterns with Kotest, MockK, coroutine testing, property-based testing, and Kover coverage. Follows TDD methodology with idiomatic Kotlin practices. Only for Kotlin — not for other languages. Triggers on \"kotlin-testing\", \"kotlin testing\", \"testing\"."
metadata:
  origin: ECC
---

# Kotlin Testing Patterns

Comprehensive Kotlin testing patterns for writing reliable, maintainable tests following TDD methodology with Kotest and MockK.

## When to Use

- Writing new Kotlin functions or classes
- Adding test coverage to existing Kotlin code
- Implementing property-based tests
- Following TDD workflow in Kotlin projects
- Configuring Kover for code coverage

## When NOT to Use

- Other languages (use `golang-testing`, `python-testing`, etc.)
- Kotlin idioms in general (use `kotlin-patterns`)
- Ktor/Exposed specifics (use `kotlin-ktor-patterns`, `kotlin-exposed-patterns`)

## How It Works

1. **Identify target code** — Find the function, class, or module to test
2. **Write a Kotest spec** — Choose a spec style (StringSpec, FunSpec, BehaviorSpec) matching the test scope
3. **Mock dependencies** — Use MockK to isolate the unit under test
4. **Run tests (RED)** — Verify the test fails with the expected error
5. **Implement code (GREEN)** — Write minimal code to pass the test
6. **Refactor** — Improve the implementation while keeping tests green
7. **Check coverage** — Run `./gradlew koverHtmlReport` and verify 80%+ coverage

## Contents

| Topic | Reference |
|---|---|
| TDD cycle, Kotest spec styles | `references/tdd-kotest-specs.md` |
| Matchers, MockK | `references/matchers-mockk.md` |
| Coroutine testing (runTest, Flow) | `references/coroutines.md` |
| Property-based, data-driven | `references/property-datadriven.md` |
| Lifecycle, fixtures, Kover | `references/lifecycle-kover.md` |
| Ktor testApplication | `references/ktor.md` |

## Testing Commands

```bash
# Run all tests
./gradlew test

# Run specific test class
./gradlew test --tests "com.example.UserServiceTest"

# Run specific test
./gradlew test --tests "com.example.UserServiceTest.getUser returns user when found"

# Run with verbose output
./gradlew test --info

# Run with coverage
./gradlew koverHtmlReport

# Run detekt (static analysis)

Files in this skill

  • SKILL.md2.3 KB
  • references/coroutines.md2.5 KB
  • references/ktor.md968 B
  • references/lifecycle-kover.md2.5 KB
  • references/matchers-mockk.md3.5 KB
  • references/property-datadriven.md2.4 KB
  • references/tdd-kotest-specs.md5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…