{"enrichment":{"faq":[{"a":"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).","q":"How do I test utility classes with static methods?"},{"a":"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\u2014whether nulls are rejected, tolerated, or converted to defaults.","q":"What patterns does unit-test-utility-methods use for null handling?"},{"a":"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.","q":"How can I write readable assertions using AssertJ?"},{"a":"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.","q":"What edge cases should unit-test-utility-methods cover?"},{"a":"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.","q":"How do I test pure functions with unit-test-utility-methods?"},{"a":"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().","q":"Can unit-test-utility-methods validate string and collection utilities?"}],"shadow_tags":["pure-function-testing","static-method-patterns","edge-case-coverage","assertion-frameworks","parameterized-testing","null-safety-validation","boundary-conditions","test-naming-conventions"],"summary_rewrite":"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."},"files":[{"bytes":7299,"path":"plugins/developer-kit-java/skills/unit-test-utility-methods/SKILL.md","sha256":"0576f33dd1711e975e1b713e7c57814f5b1168d737439a302160133ec2c5441a","url":"https://skillfed.io/files/giuseppe-trisciuoglio/developer-kit/unit-test-utility-methods/7504b2f6/SKILL.md"}],"id":"giuseppe-trisciuoglio/developer-kit/unit-test-utility-methods","links":{"html":"https://skillfed.io/giuseppe-trisciuoglio/developer-kit/unit-test-utility-methods","md":"https://skillfed.io/giuseppe-trisciuoglio/developer-kit/unit-test-utility-methods.md","repo":"https://github.com/giuseppe-trisciuoglio/developer-kit"},"meta":{"agents_supported":[],"first_seen":"2026-07-28","forks":37,"language":"Python","last_updated":"2026-06-22","license":"MIT","name":"unit-test-utility-methods","publisher":"giuseppe-trisciuoglio","stars":311},"relations":{"similar":[{"id":"giuseppe-trisciuoglio/developer-kit/unit-test-boundary-conditions"},{"id":"giuseppe-trisciuoglio/developer-kit/unit-test-parameterized"},{"id":"dawiddutoit/custom-claude/java-test-generator"},{"id":"decebals/claude-code-java/test-quality"},{"id":"giuseppe-trisciuoglio/developer-kit/unit-test-config-properties"},{"id":"giuseppe-trisciuoglio/developer-kit/unit-test-bean-validation"},{"id":"giuseppe-trisciuoglio/developer-kit/unit-test-json-serialization"},{"id":"giuseppe-trisciuoglio/developer-kit/unit-test-scheduled-async"},{"id":"giuseppe-trisciuoglio/developer-kit/unit-test-mapper-converter"},{"id":"pluginagentmarketplace/custom-plugin-java/java-testing"}]},"slug":{"owner":"giuseppe-trisciuoglio","repo":"developer-kit","skill":"unit-test-utility-methods"},"version":"7504b2f6"}
