>Java >java지도 시간 >PowerMockito를 사용하여 객체를 반환하는 단일 정적 메서드를 모의하는 방법은 무엇입니까?

PowerMockito를 사용하여 객체를 반환하는 단일 정적 메서드를 모의하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-02 15:30:12436검색

How to Mock a Single Static Method Returning an Object Using PowerMockito?

PowerMockito를 사용하여 객체를 반환하기 위해 단일 정적 메서드 모의

여러 정적 메서드가 포함된 클래스를 처리할 때 단일 정적 메서드를 모의하는 동시에 이를 보장하는 문제가 발생합니다. 객체를 반환합니다. 다음은 PowerMockito를 사용하는 자세한 솔루션입니다.

  1. 정적 모의 활성화:

    PowerMockito를 사용하여 수정하려는 클래스에 대해 정적 모의를 활성화하여 시작하세요. mockStatic(Class.class). 이를 통해 해당 클래스 내의 정적 메서드에 대한 특정 동작을 설정할 수 있습니다.

  2. 메서드 스텁:

    대상의 동작을 지정하려면 정적 메서드인 경우 when-thenReturn 구문을 사용하세요. 예:

    when(Class.m1(param1, param2)).thenReturn(objectToReturn);

    이는 m1이 지정된 매개변수로 호출될 때 제공된 객체를 반환해야 함을 지정합니다.

  3. 기본 반환 값 방지 :

    기본적으로 PowerMockito는 스텁되지 않은 정적에 대한 자체 기본값을 제공합니다. 방법. 이를 재정의하고 사용자 정의 개체를 반환하려면 기본 전략을 지정하지 않고 인수 1개 버전의 mockStatic을 사용하는 것이 중요합니다.

  4. 구현 예:

    다음 코드 조각을 고려하세요.

    PowerMockito.mockStatic(Static.class);
    when(Static.m1("param1", "param2")).thenReturn(new Object());

    이것은 코드는 Static 클래스의 정적 메서드 m1을 모의하고 이를 스텁하여 객체의 새 인스턴스를 반환합니다.

  5. 모의 메서드 사용:

    정적 메소드가 조롱되고 스텁되면 평소대로 사용할 수 있습니다. 메소드 호출은 PowerMockito에 의해 차단되고 지정된 객체를 반환합니다.

여기서 주요 차이점은 기본 전략을 지정하지 않고 정적 모의를 활성화하기 위해 1인수 버전의 mockStatic을 사용한다는 점을 기억하세요. 그런 다음 when-thenReturn 구문을 사용하여 단일 정적 메서드를 스텁하여 객체를 반환합니다.

위 내용은 PowerMockito를 사용하여 객체를 반환하는 단일 정적 메서드를 모의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.