У меня есть класс под названием Availability.java
и два метода.Mockito - внутренний метод call
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()
. Можно ли издеваться над внутренним вызовом метода?
В этом случае я не хочу, чтобы getStockLevelLimit()
выполнялся, когда getStockLevelStage()
получает исполнение.
Пожалуйста, помогите.
, если я правильно понимаю, мы не можем издеваться над внутренними вызовами метода. Правильно ли? – user2057006
вы можете, но вы должны сделать это, только если у вас нет возможности пройти тест. Код должен быть разработан для естественного тестирования. Издевательские частные методы тестируемого экземпляра почти естественны. – davidxxx
У меня нет возможности переместить метод getStocklevelLimit() в другой класс и издеваться над ним. В текущем коде есть какое-то ограничение, которое было написано другим коллегией. Как вы сказали, есть способ сделать это. не могли бы вы предложить с моим текущим кодом, который я опубликовал? – user2057006