টিডিডি-তে কর্মের সর্বোত্তম কোর্সটি কী, যদি যুক্তিটি সঠিকভাবে প্রয়োগ করার পরে, পরীক্ষাটি এখনও ব্যর্থ হয় (কারণ পরীক্ষায় কোনও ভুল রয়েছে)?
উদাহরণস্বরূপ, ধরুন আপনি নিম্নলিখিত ফাংশনটি বিকাশ করতে চান:
int add(int a, int b) {
return a + b;
}
ধরুন আমরা নিম্নলিখিত পদক্ষেপে এটি বিকাশ করেছি:
পরীক্ষা লিখুন (এখনও কোনও কাজ নেই):
// test1 Assert.assertEquals(5, add(2, 3));
সংকলনের ত্রুটির ফলাফল।
একটি ডামি ফাংশন বাস্তবায়ন লিখুন:
int add(int a, int b) { return 5; }
ফলাফল:
test1
পাস।অন্য পরীক্ষার কেস যুক্ত করুন:
// test2 -- notice the wrong expected value (should be 11)! Assert.assertEquals(12, add(5, 6));
ফলাফল:
test2
ব্যর্থ,test1
এখনও পাস।বাস্তব প্রয়োগ লিখুন:
int add(int a, int b) { return a + b; }
ফলাফল:
test1
এখনও পাস,test2
এখনও ব্যর্থ (থেকে11 != 12
)।
এই বিশেষ ক্ষেত্রে: এটা কি ভাল হবে:
- সঠিক
test2
, এবং দেখুন যে এটি এখন পাস, বা - বাস্তবায়নের নতুন অংশটি মুছে ফেলুন (যেমন উপরের # 2 ধাপে ফিরে যান), সঠিক করুন
test2
এবং এটিকে ব্যর্থ হতে দিন, এবং তারপরে সঠিক প্রয়োগটি পুনঃপ্রবর্তন করুন (উপরের পদক্ষেপ # 4)।
বা অন্য কিছু, চালাক উপায় আছে?
আমি যখন বুঝতে পারি যে উদাহরণস্বরূপ সমস্যাটি তুচ্ছ, তবুও আমি জেনেরিক ক্ষেত্রে কী করতে হবে তা সম্পর্কে আগ্রহী, যা দুটি সংখ্যা সংযোজনের চেয়ে জটিল হতে পারে।
সম্পাদনা (@ থমাস জাঙ্কের জবাবে):
এই প্রশ্নের কেন্দ্রবিন্দু টিডিডি এমন ক্ষেত্রে কী পরামর্শ দেয়, ভালো কোড বা পরীক্ষা (যা টিডিডি-এর চেয়ে আলাদা হতে পারে) অর্জনের জন্য "সর্বজনীন সেরা অনুশীলন" কী নয়।