আমার কাছে কোডের একটি অংশ রয়েছে যা দেখতে এরকম কিছু দেখাচ্ছে:
function bool PassesBusinessRules()
{
bool meetsBusinessRules = false;
if (PassesBusinessRule1
&& PassesBusinessRule2
&& PassesBusinessRule3)
{
meetsBusinessRules= true;
}
return meetsBusinessRules;
}
আমি বিশ্বাস করি যে এই নির্দিষ্ট ফাংশনের জন্য চারটি ইউনিট পরীক্ষা করা উচিত। তিনটি যদি স্টেটমেন্টের প্রতিটি শর্ত পরীক্ষা করে এটি নিশ্চিত করে যে এটি মিথ্যা ফিরে এসেছে। এবং আরও একটি পরীক্ষা যা নিশ্চিত করে যে ফাংশনটি সত্য ফিরে আসে।
প্রশ্ন: এর পরিবর্তে আসলে দশটি ইউনিট পরীক্ষা করা উচিত? নয়টি যা প্রতিটি সম্ভাব্য ব্যর্থতার পাথ চেক করে। অর্থাৎ,
- মিথ্যা মিথ্যা মিথ্যা
- মিথ্যা মিথ্যা সত্য
- মিথ্যা সত্য মিথ্যা
এবং প্রতিটি সম্ভাব্য সংমিশ্রণের জন্য তাই।
আমি মনে করি এটি ওভারকিল, কিন্তু আমার দলের অন্য সদস্যদের কেউ তা গ্রহণ করেন না। আমি যেভাবে এটি দেখছি সেটি হল যদি বিজনেসরুল 1 ব্যর্থ হয় তবে সর্বদা এটি মিথ্যা ফিরে পাওয়া উচিত, এটি আগে বা শেষবার চেক করা হয়েছিল কিনা তা বিবেচ্য নয়।