정적 메서드를 조롱 해야하는 경우 코드 냄새라고 생각합니다.
- 일반적인 기능에 액세스하는 정적 메소드? -> 싱글 톤 인스턴스를 사용하여 주입
- 타사 코드? -> 자신의 인터페이스 / 델리게이트로 감싸십시오 (필요한 경우 싱글 톤으로 만드십시오)
이 나에게 잔인한 것 같다 유일한 시간, 구아바 같은 libs와,하지만 당신은 논리의 그것의 일부 (Iterables.transform (같은 것들 ..)) 원인 종류 어쨌든이 조롱 할 필요가 없습니다
그런 식으로 자신의 코드 깨끗하게 유지하고 모든 종속성을 깔끔하게 조롱 할 수 있으며 외부 종속성에 대한 부패 방지 계층이 있습니다. 실제로 PowerMock을 보았고 필요한 모든 클래스가 제대로 설계되지 않았습니다. 또한 때때로 PowerMock의 통합으로 심각한 문제가 발생했습니다
(예 : https://code.google.com/p/powermock/issues/detail?id=355 )
추신 : 개인 메소드도 마찬가지입니다. 테스트가 개인 메소드의 세부 사항에 대해 알아야한다고 생각하지 않습니다. 클래스가 너무 복잡하여 개인 메서드를 모방하려는 유혹이 있다면 아마도 해당 클래스를 분할하는 신호 일 것입니다 ...