testing

Enforce state-based test verification in Kotlin and Spring workflows.

25|1|Updated Jan 14, 2026
One-click install
npx skills add https://github.com/toongri/oh-my-toong-playground --skill testing-toongri
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: testing
Source: https://github.com/toongri/oh-my-toong-playground/tree/main/projects/loopers-kotlin-spring-template/skills/testing
Command: npx skills add https://github.com/toongri/oh-my-toong-playground --skill testing-toongri

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill prevents test pollution by enforcing the Iron Law—verify only state and outcomes, never interactions—so Kotlin/Spring teams can trust their test suites without slipping back into mock-heavy habits.

Core Features & Use Cases

  • Iron Law Enforcement: Clearly defines forbidden verify() usage, hybrid state+interaction anti-patterns, and rationalization traps so agents resist pressure to revert to unsafe practices.
  • Structured Test Guidance: Provides BDD nesting, Korean display names with English backtick method names, factory methods with defaults, and test isolation tactics for reliable, maintainable suites.
  • Data Design Discipline: Covers boundary value analysis, equivalence class partitioning, decision tables, and responsibility separation first so every combination and threshold is justified before writing executable assertions.

Quick Start

Request a test review that enforces the Iron Law, BDD structure, and systematic boundary analysis before implementing the Kotlin tests.

Frequently Asked Questions about testing

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write Kotlin tests that verify state instead of interactions?

To write Kotlin tests that verify state, you must enforce the Iron Law of Classical TDD by asserting outcomes and avoiding mock-heavy verify() calls. This Skill guides you in applying state-based assertions and BDD nesting to maintain reliable test suites.

What is the Iron Law of Classical TDD in software testing?

The Iron Law of Classical TDD mandates that tests verify only state and outcomes, never interactions. This prevents test pollution and anti-patterns, ensuring your test suite validates actual behavior rather than fragile implementation details.

How do I structure BDD tests in Kotlin with boundary value analysis?

Structuring BDD tests with boundary analysis in Kotlin involves using BDD nesting with systematic boundary value analysis and equivalence class partitioning. This Skill provides test isolation tactics and factory methods with defaults to justify every data combination before writing assertions.

How do I configure WireMock scenarios in Spring testing workflows?

Configuring WireMock scenarios in Spring testing workflows requires state-based assertions and strict adherence to Classical TDD principles. This Skill documents WireMock patterns and Awaitility scenarios to satisfy behavioral requirements without resorting to interaction verification.

When should I avoid using verify() in my unit tests?

You should avoid using verify() in unit tests whenever following Classical TDD, as it couples tests to internal interactions. This Skill helps you identify hybrid state and interaction anti-patterns, guiding you to use decision table coverage and responsibility separation instead.

Does Classical TDD work with Kotlin and Spring testing frameworks?

Classical TDD works effectively with Kotlin and Spring testing frameworks by applying BDD nesting, state-based assertions, and decision table coverage. This Skill ensures your Kotlin/Spring teams can trust test suites without slipping back into mock-heavy habits.