Saya seorang programmer yang agak defensif dan penggemar berat Kontrak Kode Microsoft.
Sekarang saya tidak bisa selalu menggunakan C # dan dalam kebanyakan bahasa satu-satunya alat yang saya miliki adalah pernyataan. Jadi saya biasanya berakhir dengan kode seperti ini:
class
{
function()
{
checkInvariants();
assert(/* requirement */);
try
{
/* implementation */
}
catch(...)
{
assert(/* exceptional ensures */);
}
finally
{
assert(/* ensures */);
checkInvariants();
}
}
void checkInvariants()
{
assert(/* invariant */);
}
}
Namun, paradigma ini (atau apa pun namanya) menyebabkan banyak kode berantakan.
Saya sudah mulai bertanya-tanya apakah itu benar-benar sepadan dengan usaha dan apakah unit test yang tepat sudah akan membahas ini?