Java에서 Mockito를 사용하면 개발자는 다른 메서드는 영향을 받지 않고 클래스 내의 특정 메서드를 모의할 수 있습니다. 이 프로세스를 부분 모의 작업이라고 합니다.
다음 Stock 클래스를 고려하세요.
public class Stock { private final double price; private final int quantity; public Stock(double price, int quantity) { this.price = price; this.quantity = quantity; } public double getPrice() { return price; } public int getQuantity() { return quantity; } public double getValue() { return getPrice() * getQuantity(); } }
테스트 시나리오에서는 getPrice()와 getQuantity() 메서드를 사용하여 특정 값을 반환합니다. 그러나 우리는 getValue() 메소드가 의도한 계산을 수행하기를 원합니다.
부분 조롱을 사용하면 다음과 같이 이를 달성할 수 있습니다.
Stock stock = mock(Stock.class); when(stock.getPrice()).thenReturn(100.00); when(stock.getQuantity()).thenReturn(200); when(stock.getValue()).thenCallRealMethod();
여기서 구성:
또는 spy() 메서드를 대신 사용할 수도 있습니다. mock():
Stock stock = spy(Stock.class); doReturn(100.00).when(stock).getPrice(); doReturn(200).when(stock).getQuantity();
이 경우 스텁되지 않은 모든 메소드(예: getValue())는 원래 구현을 호출합니다.
모의 처리에 주목할 가치가 있습니다. getPrice() 및 getQuantity()와 같은 메소드는 getValue()가 모의 반환이 아닌 해당 값에 직접 의존하는 경우 원하는 결과를 생성하지 못할 수 있습니다. 가치. 이러한 경우에는 아래와 같이 모의 작업을 완전히 피하고 테스트의 실제 구현에 의존하는 것이 더 적절할 수 있습니다.
Stock stock = new Stock(100.00, 200); double value = stock.getValue(); assertEquals(100.00 * 200, value, 0.00001);
위 내용은 Mockito를 사용하여 Java에서 메소드를 선택적으로 모의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!