Untuk memperbaiki bug dalam aplikasi, saya memodifikasi metode yang dinamai postLogin
dengan 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 getNext
digunakan sebelumnya. Mungkin contoh yang lebih baik adalah objek yang mewakili elektron; apa yang terjadi ketika saya menelepon getPosition
? Atau lebih buruk lagi,getPosition(); getVelocity();