가 나는 일부 정적 메서드를 조롱 할 필요가 PowerMock 1.4.7 및 JUnit을 4.8.2PowerMock : 정적 메서드의 조롱 (+ 어떤 특별한 방법으로 원래의 값을 반환)
를 사용하고 난 에서 (다른 사람을 원한다 같은 클래스) 원래 값을 반환합니다. mockStatic
으로 조롱하고 when().doReturn()
을 호출하지 마십시오. 정적 메서드는 객체 을 반환 할 때 null 또는 부울을 반환 할 때 false를 반환합니다. 그래서 thenCallRealMethod
을 각 정적 메서드에 명시 적으로 사용하려고 시도합니다. 기본 구현 (조롱/가짜 없음을 의미)하지만 모르겠습니다. 가능한 모든 인수 변형에 대해 호출하는 방법 (= 가능한 모든 입력 호출을 원합니다. 원래 방법). 나는 단지 구체적인 변이 변화를 조롱하는 방법을 안다.
이 방법이 효과가 있지만 일치하는 인수를 사용할 때는주의해야합니다. _Mockito.any() _를 사용하고 스파이의 메소드를 스텁하려는 경우, 실제 getB() impl은 스터 빙 명령문을 평가하는 동안 호출됩니다. getB()가 널 인수를 처리하지 못하면 NPE가 발생합니다. –