2017-10-09 4 views
0

클래스에 정적 메서드가 있습니다. 이 방법은 최종적인 것이 아닙니다. 나는 when()가 '모의 메소드 호출'오류 여야하는 인수를 필요로하고있다. 아래는 제 코드입니다.모의 정적 메서드

mockStatic(HomefeedExperimentUtils.class); 

when(HomefeedExperimentUtils.getGroupAndActivateExperiment(
    "link_stock_signal_filter_exp")).thenReturn(
    "treatment"); 

가 나는 또한 시도했다 :

HomefeedExperimentUtils mock = org.mockito.Mockito.mock(HomefeedExperimentUtils.class); 

when(mock.getGroupAndActivateExperiment(
    "link_stock_signal_filter_exp")).thenReturn(
    "treatment"); 

어떤 도움을 주시면 감사와.

감사합니다.

+0

통계를 조롱하지 마십시오. 공공 행동을 테스트하고 통계가 공개 된 경우 직접 테스트하십시오. – chrylis

+0

처음에는'정적'메소드를 사용하지 마십시오. 그것들은 당신의 코드를 유연하지 못하게하고 재사용하기 어렵게 만든다. 아니요 : 유틸리티 클래스가 정적 메서드를 가져야한다는 규칙은 없습니다 ... –

+0

http://idownvotedbecau.se/noresearch/ – GhostCat

답변

0

Mockito는 정적 조롱을 수행 할 수 없으므로 PowerMock을 사용하여 기능을 확장하고이를 달성하십시오.

https://github.com/powermock/powermock/wiki

+0

하지만 PowerMock을 사용하여 나쁜 디자인에 항복하기 전에 '정적'키워드를 제거하십시오. 시험중인 그 방법! –