যতদূর আমি এটি বুঝতে পেরেছি, বেশিরভাগ লোকজন একমত পোষণ করে যে বেসরকারী পদ্ধতিগুলি সরাসরি পরীক্ষা করা উচিত নয়, বরং যে কোনও পাবলিক পদ্ধতি তাদের কল করে। আমি তাদের বক্তব্যটি দেখতে পাচ্ছি, তবে আমি যখন "টিডিডির তিনটি আইন" অনুসরণ করার চেষ্টা করি এবং "লাল - সবুজ - রিফ্যাক্টর" চক্রটি ব্যবহার করি তখন এ নিয়ে আমার কিছু সমস্যা হয়। আমি মনে করি এটি সর্বোত্তম উদাহরণ দ্বারা ব্যাখ্যা করা হয়েছে:
এখনই, আমার একটি প্রোগ্রাম দরকার যা একটি ফাইল পড়তে পারে (ট্যাব-বিভাজিত ডেটা সহ) এবং অ-সংখ্যাসূচক ডেটাযুক্ত সমস্ত কলামগুলি ফিল্টার করে ফেলতে পারে। আমার ধারণা, এটি করার জন্য ইতিমধ্যে সম্ভবত কিছু সহজ সরঞ্জাম উপলব্ধ রয়েছে তবে আমি নিজেকে এটিকে স্ক্র্যাচ থেকে বাস্তবায়নের সিদ্ধান্ত নিয়েছি, বেশিরভাগ কারণেই আমি অনুভব করেছি যে এটি আমার জন্য টিডিডি নিয়ে কিছু অনুশীলন করার জন্য একটি সুন্দর এবং পরিষ্কার প্রকল্প হতে পারে।
সুতরাং, প্রথমে, আমি "লাল টুপি লাগালাম", অর্থাত আমার ব্যর্থ হয় এমন একটি পরীক্ষা দরকার। আমি বুঝতে পেরেছি, আমার এমন একটি পদ্ধতি দরকার যা সমস্ত লাইনে অ-সংখ্যাযুক্ত ক্ষেত্রগুলি খুঁজে পায় finds সুতরাং আমি একটি সহজ পরীক্ষা লিখি, অবশ্যই এটি অবিলম্বে সংকলন করতে ব্যর্থ হয়, তাই আমি নিজেই ফাংশনটি লিখতে শুরু করি এবং কয়েক চক্র পিছনে পিছনে (লাল / সবুজ) পরে আমার একটি কার্যকরী ফাংশন এবং একটি সম্পূর্ণ পরীক্ষা রয়েছে have
এরপরে, আমি একটি ফাংশন দিয়ে চালিয়ে যাচ্ছি, "একসাথে এক লাইন ফাইলটি পড়া এবং" প্রতিটি "লাইনে আমার" FindNonNumericFields "- ফাংশনটি কল করে যেগুলি শেষ পর্যন্ত অপসারণ করতে হবে। বেশ কয়েকটি লাল-সবুজ-চক্র, এবং আমার কাজ শেষ হয়ে গেছে, একটি কাজের ফাংশন এবং একটি সম্পূর্ণ পরীক্ষা।
এখন, আমি অনুভব করি যে আমার চুল্লি করা উচিত। যেহেতু আমার পদ্ধতি "ফাইন্ডননুমারিক ফিল্ডস" কেবল ডিজাইন করা হয়েছিল কারণ আমি অনুভব করেছি যে "এসেম্বলননুমারিক কলামগুলি" প্রয়োগ করার সময় আমার এটির প্রয়োজন হবে, তাই আমার কাছে মনে হয় যে "FindNonNumericFields" ব্যক্তিগত হতে দেওয়া যুক্তিসঙ্গত হবে। যাইহোক, এটি আমার প্রথম পরীক্ষাগুলি ভঙ্গ করবে, যেহেতু তারা যে পদ্ধতিতে পরীক্ষা করছে তারা তাদের আর অ্যাক্সেস পাবে না।
সুতরাং, আমি একটি ব্যক্তিগত পদ্ধতি এবং পরীক্ষার একটি স্যুট যা এটি পরীক্ষা করে শেষ করে। যেহেতু অনেক লোক পরামর্শ দেয় যে ব্যক্তিগত পদ্ধতিগুলি পরীক্ষা করা উচিত নয়, তাই মনে হয় আমি এখানে একটি কোণে নিজেকে আঁকছি। তবে আমি ঠিক কোথায় ব্যর্থ হই?
আমি জড়ো হয়েছি যে আমি উচ্চ স্তরে শুরু করতে পারতাম, এমন একটি পরীক্ষা লিখছিলাম যা পরীক্ষা করে অবশেষে আমার সর্বজনীন পদ্ধতিতে কী পরিণত হবে (যা, FindAndFilterOutAllNonNumerical Collines), তবে এটি টিডিডির পুরো বিন্দুটির সাথে কিছুটা বিপরীত অনুভব করে (কমপক্ষে চাচা বব অনুসারে) : আপনার লেখার পরীক্ষা এবং উত্পাদন কোডের মধ্যে অবিচ্ছিন্নভাবে পরিবর্তন হওয়া উচিত, এবং যে কোনও সময়ে, আপনার সমস্ত পরীক্ষাগুলি শেষ মুহুর্তের মধ্যে কাজ করেছিল। কারণ আমি যদি কোনও পাবলিক পদ্ধতির জন্য একটি পরীক্ষা লিখে শুরু করি, তবে বেসরকারী পদ্ধতিতে কাজ করার জন্য সমস্ত বিবরণ পাওয়ার আগে আমার বেশ কয়েক মিনিট (বা ঘন্টা বা খুব জটিল ক্ষেত্রে এমনকি কয়েক দিন) সময় আসবে যাতে জনসাধারণের পরীক্ষার পরীক্ষা করা হয় পদ্ধতি পাস।
তো এখন কি করা? টিডিডি (দ্রুত লাল-সবুজ-রিফ্যাক্টর চক্র সহ) কেবল ব্যক্তিগত পদ্ধতির সাথে সামঞ্জস্য নয়? নাকি আমার ডিজাইনে কোনও দোষ আছে?
private
এমনভাবে আড়াল করুন যেন এটি করার মতো কোনও বোধগম্য হয়।