선택적 메서드 모의에 Mockito 사용
Mockito는 클래스 내에서 특정 메서드를 모의하는 유연성을 제공합니다. 부분 모의를 활용함으로써 개발자는 다른 메서드는 그대로 유지하면서 재정의할 메서드를 선택할 수 있습니다.
예를 들어 getPrice(), Stock 클래스를 생각해 보세요. >getQuantity() 및 getValue(). 반환 값에 대해 처음 두 메서드를 모의하고 싶을 수도 있지만 getValue()가 원래 동작을 유지하도록 하세요.
Mockito에서 부분 모의를 사용하면 이 정밀도를 얻을 수 있습니다.Stock 객체는 모의 개체로 인스턴스화되는 반면 getPrice() 및 getQuantity()에 대한 특정 기대치가 설정됩니다. 예는 다음과 같습니다.
Stock stock = mock(Stock.class); when(stock.getPrice()).thenReturn(100.00); when(stock.getQuantity()).thenReturn(200);
getValue()에 대해 thenCallRealMethod()를 호출하면 실제 구현이 유지됩니다.
when(stock.getValue()).thenCallRealMethod();또는 스파이가 될 수 있습니다. 여기서 모든 메소드는 초기에 실제 구현을 참조합니다. 명시적으로 스텁된 메서드만 변경된 동작을 채택합니다. 스파이 접근 방식은 다음과 같습니다.
Stock stock = spy(Stock.class); when(stock.getPrice()).thenReturn(100.00); when(stock.getQuantity()).thenReturn(200);스파이를 사용할 때는 스텁된 메서드 내에서 실제 메서드를 호출하지 않는 것이 중요합니다.또 다른 옵션에는 Mockito.CALLS_REAL_METHODS 플래그가 포함됩니다.
Stock MOCK_STOCK = Mockito.mock( Stock.class, CALLS_REAL_METHODS );이 접근 방식은 스텁되지 않은 메서드를 실제 메서드에 위임합니다. 그러나 주어진 Stock 예에서
price 및 모두에 대한 getValue()의 종속성으로 인해 이 부분적 모의 전략은 여전히 실패할 수 있습니다. 수량 게터에만 국한되지 않고 직접적으로.
또한 다음과 같은 경우 모의 객체를 완전히 피하는 것을 고려하세요. 가능:위 내용은 부분적 모의를 위해 Mockito에서 어떻게 선택적으로 모의 메서드를 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!