Jika turn_twizzles
,, push_buttons
dan move_mountain
bersifat publik dan dipanggil oleh kode lain, maka saya pikir penting untuk melakukan refactor pengujian Anda untuk menguji fungsi-fungsi ini secara individual.
Sayangnya setelah refactor Anda Anda memiliki masalah: untuk menguji unit do_everything
Anda harus mampu untuk mengejek turn_twizzles
, push_buttons
dan move_mountain
. Menulis tes untuk do_everything
tanpa mengejek dependensi akan menjadi tes integrasi - tidak harus hal yang buruk tergantung pada rencana pengujian Anda, tetapi tidak akan ada banyak manfaat karena Anda sudah menguji tiga fungsi yang lebih kecil secara individual. Ini mungkin saat yang tepat bagi Anda untuk mendesain ulang komponen ini dan berkolaborasi dengan objek lain untuk melakukan semua pekerjaan do_everything
.
Jika turn_twizzles
,, push_buttons
dan move_mountain
tidak dipanggil secara eksternal, mereka harus ditandai pribadi, dan saya tidak akan merekomendasikan untuk mengujinya secara terpisah do_everything
. Ini karena dari sudut pandang berwawasan ke luar, do_everything
akan menjadi unit terkecil (karena yang lain tidak dapat diakses). Lihat juga jawaban ini tentang memecah metode menggunakan metode pribadi.