Aby naprawić błąd w aplikacji, zmodyfikowałem metodę o nazwie postLogin
, dodając wywołanie do istniejącej metody o nazwie getShoppingCart
.
Kod
protected void postLogin() {
getShoppingCart();
}
Nie jestem jednak pewien, jaki jest najlepszy sposób na napisanie testu jednostkowego postLogin
.
Podejście 1
Użyj weryfikacji z Mockito, aby po prostu sprawdzić, czy metoda została wywołana.
verify(mock).getShoppingCart();
Podejście 2
Przetestuj efekt uboczny wywołania metody, pobierając wartość koszyka na zakupy użytkownika.
AssertNotNull(user.getShoppingCart());
Czy jedno podejście jest lepsze od drugiego?
getShoppingCart()
metoda nie ma skutków ubocznych, nie musisz sprawdzać, jak się nazywa. Jeśli ma skutki uboczne, naprawdę powinieneś zmienić jego nazwę, ponieważ getXXX()
metody konwencjonalnie powinny być idempotentne.
getNextValue
? Prawdopodobnie ktoś mógłby powiedzieć „Nie nazywaj tego getterem; zmień nazwę na nextValue
”, ale widziałem już wcześniej getNext
używane. Być może lepszym przykładem byłby obiekt reprezentujący elektron; co się stanie, kiedy zadzwonię getPosition
? Lub gorzej,getPosition(); getVelocity();