Untuk memperbaiki bug dalam aplikasi, saya memodifikasi metode yang dinamai postLogindengan menambahkan panggilan ke metode yang ada bernama getShoppingCart.
Kode
protected void postLogin() {
getShoppingCart();
}
Namun, saya tidak yakin apa cara terbaik untuk menulis unit test postLogin.
Pendekatan 1
Gunakan verifikasi dari Mockito untuk memverifikasi bahwa metode itu dipanggil.
verify(mock).getShoppingCart();
Pendekatan 2
Uji efek samping dari pemanggilan metode dengan mengambil nilai keranjang belanja pengguna.
AssertNotNull(user.getShoppingCart());
Apakah satu pendekatan lebih baik dari yang lain?
getShoppingCart()metode Anda memiliki efek samping, Anda tidak perlu mengujinya. Jika memang memiliki efek samping, Anda harus benar-benar mengubah namanya karena getXXX()metode konvensional harus idempoten.
getNextValue? Bisa dibilang, seseorang bisa mengatakan "Jangan menyebutnya rajin; ubah nama menjadi nextValue", tetapi saya telah melihat getNextdigunakan sebelumnya. Mungkin contoh yang lebih baik adalah objek yang mewakili elektron; apa yang terjadi ketika saya menelepon getPosition? Atau lebih buruk lagi,getPosition(); getVelocity();