{"adoption": {"forks": 572, "observed_at": "2026-08-28T04:08:38.013762+00:00", "stars": 4170}, "canonical_url": "https://ross.abutalabs.com/products/powermock", "card": {"archived": false, "artifact_type": "framework", "description": "PowerMock is a Java framework that allows you to unit test code normally regarded as untestable.", "domain": ["testing", "developer-tools"], "enriched": true, "function": ["testing", "mocking"], "health_score": 20, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["powermock/powermock"], "name": "powermock/powermock", "platform": ["jvm"], "pushed_at": "2024-01-03T18:46:42+00:00", "repo": "powermock/powermock", "stars": 4170, "tags": ["java", "mockito", "easymock", "bytecode-manipulation", "unit-testing"], "topics": ["java", "testability", "testing", "mocking", "mocking-framework"], "urls": [], "use_cases": ["mock static methods in java unit tests", "mock final classes and methods", "suppress static initializer blocks in tests", "test legacy code with private method mocking", "extend mockito tests to untestable code", "bypass encapsulation to access internal state in tests"], "what_it_is": "PowerMock is a Java framework that extends mocking libraries like EasyMock and Mockito to enable unit testing of code normally regarded as untestable. It uses a custom classloader and bytecode manipulation to mock static methods, constructors, final classes and methods, private methods, and static initializers.", "when_to_avoid": ["you are starting a new project and can design for testability with plain Mockito", "your team includes junior developers, as PowerMock can encourage poor design", "you need a actively developed tool with modern JDK support"], "when_to_choose": ["you need to unit test legacy Java code with static methods, final classes, or private methods", "you already use Mockito or EasyMock and need more powerful mocking capabilities", "you cannot refactor production code for testability"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/powermock", "repo": "powermock/powermock", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.013762+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:22:45.191372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3af26970ee37f53367003b78b4c51a26d4ceccbdf1de0a29fc7f4289aa730c12", "fetched_at": "2026-08-28T04:08:38.013762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/powermock/powermock"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.013762+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:22:45.191372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3af26970ee37f53367003b78b4c51a26d4ceccbdf1de0a29fc7f4289aa730c12", "fetched_at": "2026-08-28T04:08:38.013762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/powermock/powermock"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:22:45.191372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3af26970ee37f53367003b78b4c51a26d4ceccbdf1de0a29fc7f4289aa730c12", "fetched_at": "2026-08-28T04:08:38.013762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/powermock/powermock"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.013762+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.013762+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.013762+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:22:45.191372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3af26970ee37f53367003b78b4c51a26d4ceccbdf1de0a29fc7f4289aa730c12", "fetched_at": "2026-08-28T04:08:38.013762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/powermock/powermock"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.013762+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.013762+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:22:45.191372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3af26970ee37f53367003b78b4c51a26d4ceccbdf1de0a29fc7f4289aa730c12", "fetched_at": "2026-08-28T04:08:38.013762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/powermock/powermock"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.013762+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.013762+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.013762+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:22:45.191372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3af26970ee37f53367003b78b4c51a26d4ceccbdf1de0a29fc7f4289aa730c12", "fetched_at": "2026-08-28T04:08:38.013762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/powermock/powermock"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.013762+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:38.013762+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:22:45.191372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3af26970ee37f53367003b78b4c51a26d4ceccbdf1de0a29fc7f4289aa730c12", "fetched_at": "2026-08-28T04:08:38.013762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/powermock/powermock"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:22:45.191372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3af26970ee37f53367003b78b4c51a26d4ceccbdf1de0a29fc7f4289aa730c12", "fetched_at": "2026-08-28T04:08:38.013762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/powermock/powermock"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:22:45.191372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3af26970ee37f53367003b78b4c51a26d4ceccbdf1de0a29fc7f4289aa730c12", "fetched_at": "2026-08-28T04:08:38.013762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/powermock/powermock"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:22:45.191372+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3af26970ee37f53367003b78b4c51a26d4ceccbdf1de0a29fc7f4289aa730c12", "fetched_at": "2026-08-28T04:08:38.013762+00:00", "kind": "readme", "missing": false, "url": "https://github.com/powermock/powermock"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4480, "days_push": 973, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}