unit-test-utility-methods
This skill generates test patterns for utility classes with static methods and pure functions. It covers null handling, edge cases, boundary conditions, and common utilities like string manipulation, math helpers, validators, and collection operations using AssertJ assertions and parameterized tests.
unit-test-utility-methods generates test patterns for static utility functions, covering null handling, edge cases, and boundary conditions with AssertJ assertions.
AI-generated summary based on this skill's SKILL.md
Install
giuseppe-trisciuoglio/developer-kit/unit-test-utility-methods · repository language: Python
git clone https://github.com/giuseppe-trisciuoglio/developer-kit
cp -r developer-kit/plugins/developer-kit-java/skills/unit-test-utility-methods ~/.claude/skills/unit-test-utility-methodsnpx skillfed install giuseppe-trisciuoglio/developer-kit/unit-test-utility-methodsFrequently asked questions
AI-generated answers based on this skill's SKILL.md and metadata
How do I test utility classes with static methods?
unit-test-utility-methods focuses on testing static utility methods by isolating each method and verifying its behavior independently. Create a test class for each utility, use @Test for individual cases, and @ParameterizedTest for multiple input scenarios. Test pure functions by providing known inputs and asserting expected outputs without side effects. Use AssertJ for readable assertions like assertThat(result).isEqualTo(expected).
What patterns does unit-test-utility-methods use for null handling?
unit-test-utility-methods emphasizes testing null handling in utilities through dedicated test cases. Include tests that pass null arguments and verify the utility either returns null, throws a NullPointerException, or handles it gracefully per design. Use @ParameterizedTest with null values in your test data set. Document expected behavior explicitly—whether nulls are rejected, tolerated, or converted to defaults.
How can I write readable assertions using AssertJ?
unit-test-utility-methods recommends AssertJ for fluent, chainable assertions that read like natural language. Replace assertEquals with assertThat(actual).isEqualTo(expected). For collections, use assertThat(list).contains(item).hasSize(3). For strings, use assertThat(str).startsWith(prefix).endsWith(suffix). These assertions produce clearer failure messages and make test intent obvious at a glance.
What edge cases should unit-test-utility-methods cover?
unit-test-utility-methods covers boundary conditions like empty strings, zero values, negative numbers, empty collections, and maximum/minimum integer bounds. Test string utilities with whitespace-only input, special characters, and unicode. For math helpers, test division by zero, overflow scenarios, and precision limits. Use @ParameterizedTest to systematically run the same assertions across multiple edge case inputs.
How do I test pure functions with unit-test-utility-methods?
unit-test-utility-methods treats pure functions as deterministic: same input always produces same output with no side effects. Test by calling the function multiple times with identical arguments and asserting identical results. Avoid mocking or state changes. Use @ParameterizedTest to validate behavior across a range of valid, invalid, and boundary inputs. This approach ensures utility methods remain predictable and reusable.
Can unit-test-utility-methods validate string and collection utilities?
unit-test-utility-methods validates string utilities like trim, split, replace, and case conversion by testing normal cases, empty strings, null input, and special characters. For collection utilities, test filtering, mapping, sorting, and merging with empty collections, single items, and duplicates. Use AssertJ's collection assertions: assertThat(result).containsExactly(expected) or assertThat(result).isEmpty().
SKILL.md
rendered from the published skill — quoted content, verbatim
Unit Testing Utility Classes and Static Methods
Overview
This skill generates tests for utility classes with static helper methods and pure functions. It provides patterns for testing null handling, edge cases, boundary conditions, and common utilities like string manipulation, calculations, data validation, and collections. Pure functions require no mocking.
When to Use
Use this skill when: - Writing tests for utility/helper classes with static methods - Testing pure functions with no state or side effects - Testing string manipulation, formatting, or transformation utilities - Testing calculation, conversion, or math helper functions - Testing data validation and formatter utilities -
(truncated - see the full file via the links below)
Read as markdown · JSON record · Browse the source repository
File tree — 3 files
plugins/developer-kit-java/skills/unit-test-utility-methods/SKILL.md
plugins/developer-kit-java/skills/unit-test-utility-methods/references/edge-cases.md
plugins/developer-kit-java/skills/unit-test-utility-methods/references/parameterized-tests.md