> Java > java지도 시간 > Mockito를 사용하여 클래스에서 부분적으로 메서드를 모의하는 방법은 무엇입니까?

Mockito를 사용하여 클래스에서 부분적으로 메서드를 모의하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-12 15:51:24
원래의
389명이 탐색했습니다.

How to Partially Mock Methods in a Class Using Mockito?

Mockito를 사용하여 클래스의 특정 메서드를 모의하는 방법

소프트웨어 테스팅에서 모의를 사용하면 종속성 또는 종속성의 동작을 시뮬레이션할 수 있습니다. 직접 인스턴스화하고 싶지 않은 클래스. Mockito는 메서드를 모의하고 상호 작용을 확인할 수 있는 Java 모킹 프레임워크입니다.

구체적으로, 클래스의 특정 메서드를 모의하고 다른 메서드는 그대로 두려는 시나리오가 발생할 수 있습니다. 이러한 접근 방식을 부분 조롱이라고 합니다. Mockito를 사용하여 이를 달성할 수 있는 방법은 다음과 같습니다.

// Mock the Stock class with partial mocking
Stock stock = mock(Stock.class);

// Mock specific methods
when(stock.getPrice()).thenReturn(100.00);
when(stock.getQuantity()).thenReturn(200);

// Leave 'getValue()' unmocked
// It will execute the actual Stock.getValue() calculation
when(stock.getValue()).thenCallRealMethod();
로그인 후 복사

이 방법으로 getPrice() 및 getQuantity() 메소드만 모의되고 getValue()는 원래 코드를 실행합니다.

추가로 CALLS_REAL_METHODS 인수를 다음과 함께 사용할 수 있습니다. Mockito.mock():

Stock MOCK_STOCK = Mockito.mock(Stock.class, CALLS_REAL_METHODS);
로그인 후 복사

이것은 스텁되지 않은 호출을 실제 구현에 위임합니다.

그러나 귀하의 예에서는 getPrice() 및 getQuantity()만 조롱한다는 점에 유의하는 것이 중요합니다. getValue() 구현은 실제 반환 값에 따라 달라지기 때문에 올바르게 작동하지 않습니다. 대신 모의 광고를 완전히 피하는 것이 좋습니다.

// Without mocks
Stock stock = new Stock(100.00, 200);
double value = stock.getValue();
로그인 후 복사

위 내용은 Mockito를 사용하여 클래스에서 부분적으로 메서드를 모의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿