Saya memiliki sejumlah kode yang terlihat seperti ini:
function bool PassesBusinessRules()
{
bool meetsBusinessRules = false;
if (PassesBusinessRule1
&& PassesBusinessRule2
&& PassesBusinessRule3)
{
meetsBusinessRules= true;
}
return meetsBusinessRules;
}
Saya percaya harus ada empat unit tes untuk fungsi khusus ini. Tiga untuk menguji setiap kondisi dalam pernyataan if dan memastikan itu mengembalikan false. Dan tes lain yang memastikan fungsi kembali benar.
Pertanyaan: Haruskah sebenarnya ada sepuluh unit test saja? Sembilan yang memeriksa masing-masing jalur kegagalan yang mungkin. YAITU:
- False False False
- False False Benar
- False Benar False
Dan seterusnya untuk setiap kemungkinan kombinasi.
Saya pikir itu berlebihan, tetapi beberapa anggota lain di tim saya tidak. Cara saya melihatnya adalah jika BusinessRule1 gagal maka itu harus selalu mengembalikan false, tidak masalah jika diperiksa pertama atau terakhir.