내 프로젝트에서 몇 가지 정적 util 메서드가 있는데, 그 중 일부는 그냥 통과하거나 예외를 throw합니다. void가 아닌 반환 유형을 가진 정적 메서드를 모의하는 방법에 대한 많은 예제가 있습니다. 하지만 공백을 반환하는 정적 메서드를 "doNothing()
"으로 조롱하는 방법은 무엇입니까?PowerMock에서 void를 반환하는 정적 메서드를 조롱하려면 어떻게해야합니까?
비 무효 버전은 코드의이 라인을 사용
@PrepareForTest(StaticResource.class)
...
PowerMockito.mockStatic(StaticResource.class);
을 ... 반환하는 StaticResources
에 적용하지만 경우
Mockito.when(StaticResource.getResource("string")).thenReturn("string");
void
, 컴파일은 when(T)
이 void에 해당하지 않는다고 불평 할 것입니다 ...
아이디어가 있으십니까?
해결 방법은 모든 정적 메서드가 성공하기 위해 일부 Boolean
을 반환하는 것일 수 있지만 해결 방법을 싫어합니다.
불행히도 즉,()는 변수를 수용하고 정적 리소스는 타입 때와 작동하지 않을 것이다. ('StaticResource를 변수로 해석 할 수 없습니다') – Pete
오, 죄송합니다. 내 코드가 틀렸으니 비 정적 모의 객체에 익숙해 져야합니다. 어쨌든 올바른 구문을 반영하도록 ansswer를 업데이트했습니다. – Brice
감사! 따라서 종속성이없는 정적 도우미 메서드를 사용하는 것은 나쁜 생각입니까? 물론 작업을 수행하는 객체를 삽입하고 객체화 할 수는 있지만 정적 객체에 의존성이없는 작업자가 독립성을 나타낼 수있는 것처럼 느껴집니다. – Pete