여러 정적 메서드가 포함된 클래스를 처리할 때 단일 정적 메서드를 모의하는 동시에 이를 보장하는 문제가 발생합니다. 객체를 반환합니다. 다음은 PowerMockito를 사용하는 자세한 솔루션입니다.
정적 모의 활성화:
PowerMockito를 사용하여 수정하려는 클래스에 대해 정적 모의를 활성화하여 시작하세요. mockStatic(Class.class). 이를 통해 해당 클래스 내의 정적 메서드에 대한 특정 동작을 설정할 수 있습니다.
메서드 스텁:
대상의 동작을 지정하려면 정적 메서드인 경우 when-thenReturn 구문을 사용하세요. 예:
when(Class.m1(param1, param2)).thenReturn(objectToReturn);
이는 m1이 지정된 매개변수로 호출될 때 제공된 객체를 반환해야 함을 지정합니다.
기본 반환 값 방지 :
기본적으로 PowerMockito는 스텁되지 않은 정적에 대한 자체 기본값을 제공합니다. 방법. 이를 재정의하고 사용자 정의 개체를 반환하려면 기본 전략을 지정하지 않고 인수 1개 버전의 mockStatic을 사용하는 것이 중요합니다.
구현 예:
다음 코드 조각을 고려하세요.
PowerMockito.mockStatic(Static.class); when(Static.m1("param1", "param2")).thenReturn(new Object());
이것은 코드는 Static 클래스의 정적 메서드 m1을 모의하고 이를 스텁하여 객체의 새 인스턴스를 반환합니다.
모의 메서드 사용:
정적 메소드가 조롱되고 스텁되면 평소대로 사용할 수 있습니다. 메소드 호출은 PowerMockito에 의해 차단되고 지정된 객체를 반환합니다.
여기서 주요 차이점은 기본 전략을 지정하지 않고 정적 모의를 활성화하기 위해 1인수 버전의 mockStatic을 사용한다는 점을 기억하세요. 그런 다음 when-thenReturn 구문을 사용하여 단일 정적 메서드를 스텁하여 객체를 반환합니다.
위 내용은 PowerMockito를 사용하여 객체를 반환하는 단일 정적 메서드를 모의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!