특정 정적 메서드를 모의하여 객체 반환
Mockito와 PowerMock은 정적 메서드 모의에 대한 강력한 지원을 제공합니다. 그러나 단일 정적 메서드를 모의하고 개체를 반환하도록 하는 것은 까다로울 수 있습니다.
불일치 및 호출 문제 방지
개체의 경우 반환 유형의 불일치를 피하는 것이 중요합니다. 기본 전략(예: 객체 값 메서드에 대해 null 반환)으로 모든 정적 메서드를 모의하면 오류가 발생할 수 있습니다.
PowerMockito.mockStatic(Static.class, new Answer
정적 모킹 및 대상별 메서드 활성화
해결책은 정적 메소드 모킹과 타겟 메소드 스터빙의 개념을 결합하는 것입니다. PowerMockito.mockStatic은 클래스에 대한 정적 모의를 가능하게 하며, when-thenReturn 구문을 사용하면 특정 메소드를 스텁할 수 있습니다.
PowerMockito.mockStatic(Static.class);
when(Static.m1(param1, param2) ).thenReturn(1000l);
이 접근 방식을 사용하면 모든 항목에 대한 정적 조롱이 가능합니다. Static.class의 메서드이지만 기본 스텁 전략을 재정의하지는 않습니다. when-thenReturn을 사용하면 m1 메서드를 명시적으로 스텁하여 1000l을 반환합니다.
MockStatic 오버로드 고려
PowerMockito는 mockStatic에 대해 두 가지 오버로드를 제공합니다. 단일 인수 오버로드(mockStatic(Static.class))를 사용하면 기본 전략 없이 정적 모의 작업이 가능합니다. 두 개의 인수 오버로드(mockStatic(Static.class, Answer
특정 테스트 시나리오에 따라 다음 중 하나를 사용하도록 선택할 수 있습니다. 이러한 과부하 중. 특정 메서드만 모의하거나 다양한 메서드 호출에 대해 여러 반환 값을 설정하려는 경우 단일 인수 오버로드가 더 적합합니다.
위 내용은 Mockito 및 PowerMock을 사용하여 Java에서 객체를 반환하는 특정 정적 메서드를 모의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!