Saya sedang melakukan pengujian unit.
Saya mencoba menguji satu fungsi.
Saya menyebutnya dari komponen pengujian saya. Tetapi jika fungsi jarak jauh tidak dapat menangani pengecualian maka komponen tester saya juga akan mendapatkan pengecualian, saya kira.
Jadi haruskah saya khawatir tentang mendapatkan pengecualian dalam komponen tester saya?
Terima kasih.
EDIT:
PS:
Melempar kesalahan itu baik, tetapi hanya untuk fungsi lain, tidak untuk mengakhiri pengguna sampai opsi terakhir!
OMG Saya menulis kutipan pemrograman !!
Jawaban:
Jawaban singkat: TIDAK.
Jangan menangkap pengecualian dalam tes unit. Anda sedang menguji unit untuk menemukan kesalahan dan situasi di mana pengecualian muncul.
Kerangka uji unit harus menangani pengecualian dengan cara yang waras. Sebagian besar (jika tidak semua) kerangka kerja xUnit memiliki konstruksi untuk mengharapkan pengecualian tertentu yang Anda gunakan ketika Anda ingin menginduksi kondisi pengecualian tertentu dalam sistem yang sedang diuji dan memiliki lulus tes jika pengecualian yang diharapkan dinaikkan tetapi gagal jika tidak.
sumber
(Berbeda dengan jawaban mcottle) Jawaban panjang: TIDAK ... sebagian besar waktu
Ketika Anda mengatakan bahwa Anda mengharapkan tes untuk meningkatkan pengecualian tertentu, Anda akan tahu kapan garis APAPUN dalam tes tersebut menimbulkan pengecualian tertentu.
Itu tidak sama dengan mengetahui bahwa metode yang diuji melempar pengecualian.
Jika pengujian Anda melibatkan pengaturan objek atau konteks (dalam pengujian, bukan dalam versi kerangka kerja Anda
SetUp
), Anda mungkin lebih baik membungkus satu baris yang sebenarnya ingin Anda uji dalam percobaan / tangkapan, mungkin dengan helper.Contohnya,
lalu
Jika tes ini gagal, saya tahu bahwa metode saya yang diuji melemparkan pengecualian, dan bukan sesuatu dalam pengaturan acak.
(Anda harus mencoba dan menghindari hal-hal pengaturan acak. Kadang-kadang, lebih mudah untuk memiliki beberapa kode pengaturan dalam pengujian.)
sumber
Secara umum, Anda harus membiarkan pengecualian keluar, dan kerangka kerja pengujian akan memberi Anda laporan yang bagus dengan semua informasi yang Anda butuhkan.
Namun dalam metodologi TDD, kami diharapkan untuk mengikuti langkah-langkah itu:
Saat Anda mengeluarkan pengecualian, jika kesalahannya jelas, maka itu baik-baik saja. Namun terkadang pengecualiannya tidak jelas, atau bahkan salah arah. Bagaimana Anda bisa membiarkan itu ada dalam kode Anda (untuk Anda nanti ketika Anda akan lupa, atau untuk anggota tim yang akan kehilangan waktu besar untuk mencari tahu masalahnya)? Jadi kebijakan saya adalah: " Jika perlu untuk membuat kegagalan jelas, Anda perlu menangkap pengecualian ".
sumber