나는 Availability.java
이라는 클래스가 있으며 두 가지 방법이 있습니다.Mockito - 내부 메서드 호출
public Long getStockLevelStage() {
//some logic
getStockLevelLimit();
}
public Long getStockLevelLimit() {
String primaryOnlineArea = classificationFeatureHelper.getFirstFeatureName(productModel, FEATURE_CODE_PRODUCT_ONLINE_AREA_PRIMARY, language);
................
return new Long();
}
단위 테스트 클래스 AvailabilityTest.java
을 쓰고 있습니다.
@RunWith(MockitoJUnitRunner.class)
public class AvailabilityTest {
@InjectMocks
private Availability availability = new Availability();
@Test
public void testGetStockLevelStage() {
availability.getStockLevelStage();
}
}
내가 availability.getStockLevelStage()
메소드를 호출
getStockLevelLimit()
메소드를 호출합니다. 내부 메소드 호출을 조롱하는 것이 가능합니까?
getStockLevelStage()
이 실행되면이 경우에는 getStockLevelLimit()
을 실행하고 싶지 않습니다.
도와주세요.
만약 내가 올바르게 이해, 우리는 내부 메서드 호출을 모의 수 없습니다. 맞지? – user2057006
시험을 마칠 방법이없는 경우에만해야합니다. 코드는 자연스럽게 테스트 할 수 있도록 설계되어야합니다. 테스트중인 인스턴스의 비공개 메소드를 조롱하는 것은 당연한 일입니다. – davidxxx
getStocklevelLimit() 메서드를 다른 클래스로 이동하고 조롱하는 옵션이 없습니다. 다른 동료가 작성한 현재 코드에는 몇 가지 제한 사항이 있습니다. 당신이 말했듯이 그것을하는 방법이 있습니다. 내가 게시 한 현재 코드로 제안 해 주시겠습니까? – user2057006