Щоб виправити помилку в додатку, я змінив метод, названий postLogin
додаванням виклику до існуючого методу з назвою getShoppingCart
.
Код
protected void postLogin() {
getShoppingCart();
}
Однак я не впевнений, який найкращий спосіб написати одиничний тест postLogin
.
Підхід 1
Використовуйте verify від Mockito, щоб просто перевірити, чи був викликаний метод.
verify(mock).getShoppingCart();
Підхід 2
Перевірте побічний ефект виклику методу, отримавши значення кошика користувача.
AssertNotNull(user.getShoppingCart());
Чи один підхід кращий за інший?
getShoppingCart()
метод не має побічних ефектів, вам не потрібно перевіряти, що він викликається. Якщо він має побічні ефекти, вам слід дійсно змінити його назву, оскільки getXXX()
методи, як правило, мають бути безсильними.
getNextValue
? Можливо, хтось може сказати: «Не називайте це геттером; змініть ім'я на nextValue
», але я бачив, що getNext
раніше використовувався. Можливо, кращим прикладом може бути об’єкт, що представляє електрон; що відбувається, коли я телефоную getPosition
? Або ще гірше,getPosition(); getVelocity();