작문 단위 테스트는 어려울 수 있으며 때로는 테스트 목적으로 만 좋은 디자인을 희생해야합니다.테스트 가능성은 종종 좋은 디자인에 해당하지만 항상 그런 것은 아닙니다.예를 들어 최종 클래스와 메소드를 사용할 수없고 개인 메소드를 보호하거나 불필요하게 공동 작업자로 이동해야하는 경우가 있습니다. 기존 프레임 워크의 한계 때문에 정적 메소드는 완전히 피해야합니다.PowerMock은 EasyMock과 같은 다른 모의 라이브러리를보다 강력한 기능으로 확장하는 프레임 워크입니다.PowerMock은 사용자 정의 클래스 로더 및 바이트 코드 조작을 사용하여 정적 메소드, 생성자, 최종 클래스 및 메소드, 개인 메소드, 정적 초기화 프로그램 제거 등을 조롱 할 수 있습니다.사용자 정의 클래스 로더를 사용하면 IDE 또는 지속적인 통합 서버를 변경할 필요가 없으므로 채택이 간단 해집니다.지원되는 모의 프레임 워크에 익숙한 개발자는 전체 기대 API가 정적 메소드와 생성자에 대해 동일하므로 PowerMock을 사용하기 쉽다는 것을 알게 될 것입니다.PowerMock은 적은 수의 메소드와 주석으로 기존 API를 확장하여 추가 기능을 활성화하는 것을 목표로합니다.현재 PowerMock은 EasyMock 및 Mockito를 지원합니다 .... 단위 테스트를 작성할 때 종종 캡슐화를 우회하는 것이 유용하므로 PowerMock에는 테스트에 특히 유용한 리플렉션을 단순화하는 몇 가지 기능이 포함되어 있습니다.이를 통해 내부 상태에 쉽게 액세스 할 수있을뿐만 아니라 부분 및 개인 조롱을 단순화합니다.PowerMock은 주로 단위 테스트에 대한 전문 지식이있는 사람을 대상으로합니다.주니어 개발자의 손에 넣으면 좋은 것보다 더 많은 해를 입힐 수 있습니다.