私はAvailability.java
というクラスがあり、2つのメソッドがあります。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()
は実行されません。
助けてください。
私が正しく理解していれば、私たちは内部メソッド呼び出しを模擬することはできません。 tatは正しいですか? – user2057006
あなたはテストを完了するための方法がない場合にのみ実行してください。コードは、自然にテストできるように設計する必要があります。テスト対象のインスタンスのプライベートメソッドをモックすることはすべて自然です。 – davidxxx
私はgetStocklevelLimit()メソッドを別のクラスに移動して、それをモックすることはできません。他の同僚によって書かれた現在のコードにはいくつかの制限があります。あなたが言ったように、それを行う方法があります。私が投稿した私の現在のコードでお勧めしますか? – user2057006