Att skriva enhetstester kan vara svåra och ibland måste god design offras för det enda syftet med testbarhet.Ofta motsvarar testbarheten god design, men detta är inte alltid fallet.Exempelvis kan slutklasser och metoder inte användas, privata metoder behöver ibland skyddas eller onödigt flyttas till en samarbetspartner, statiska metoder bör undvikas helt och så vidare på grund av begränsningarna i befintliga ramverk.PowerMock är ett ramverk som utökar andra håna bibliotek som EasyMock med mer kraftfulla funktioner.PowerMock använder en anpassad klasslastare och bytekodmanipulation för att möjliggöra hån för statiska metoder, konstruktörer, slutklasser och metoder, privata metoder, borttagning av statiska initierare och mer.Genom att använda en anpassad klasslastare behöver inga ändringar göras på IDE eller kontinuerlig integrationsserver som förenklar antagandet.Utvecklare som är bekanta med de stödda håravgångarna kommer att hitta PowerMock lättanvänd, eftersom hela förväntnings-API: t är detsamma, både för statiska metoder och konstruktörer.PowerMock strävar efter att utöka de befintliga API: erna med ett litet antal metoder och kommentarer för att möjliggöra de extra funktionerna.För närvarande stöder PowerMock EasyMock och Mockito .... När man skriver enhetstester är det ofta användbart att kringgå inkapsling och därför inkluderar PowerMock flera funktioner som förenklar reflektion som är särskilt användbar för testning.Detta möjliggör enkel åtkomst till internt tillstånd, men förenklar också partiell och privat hån.Observera att PowerMock huvudsakligen är avsett för personer med expertkunskap inom enhetstestning.Att lägga den i händerna på juniorutvecklare kan orsaka mer skada än nytta.