আপনার কোডবেসে কোথাও কোথাও কোডের একটি লাইন রয়েছে যা দূরবর্তী ডিবিতে সংযোগের প্রকৃত ক্রিয়া সম্পাদন করে। কোডের এই লাইনটি 10 এর মধ্যে 9 বার, আপনার ভাষা এবং পরিবেশের জন্য নির্দিষ্ট রানটাইম লাইব্রেরি দ্বারা সরবরাহ করা "বিল্ট-ইন" পদ্ধতিতে কল। যেমন, এটি "আপনার" কোড নয় এবং সুতরাং এটি পরীক্ষা করার দরকার নেই; ইউনিট পরীক্ষার উদ্দেশ্যে, আপনি বিশ্বাস করতে পারেন যে এই পদ্ধতি কলটি সঠিকভাবে সম্পাদন করবে। আপনার ইউনিট টেস্ট স্যুটে আপনি যা করতে পারেন এবং কী পরীক্ষা করা উচিত তা হ'ল এই কলটির জন্য যে পরামিতিগুলি ব্যবহার করা হবে তা নিশ্চিত করার মতো জিনিসগুলি যা আপনি তাদের প্রত্যাশা করেছেন যেমন সংযোগের স্ট্রিংটি সঠিক কিনা তা নিশ্চিত করা, বা এসকিউএল বিবৃতি বা সঞ্চিত পদ্ধতির নাম।
এই ইউনিট পরীক্ষাগুলি তাদের রানটাইম "স্যান্ডবক্স" না ফেলে এবং বাহ্যিক অবস্থার উপর নির্ভরশীল না হওয়া এই বিধিনিষেধের পিছনে অন্যতম লক্ষ্য। এটি আসলে বেশ ব্যবহারিক; ইউনিট পরীক্ষার উদ্দেশ্য হ'ল আপনি যে কোডটি লিখেছেন (বা টিডিডিতে লিখতে চলেছেন) আপনার ধারণাটি যেভাবে আচরণ করে তা যাচাই করা । আপনি যে কোডটি লেখেন নি, যেমন আপনার গ্রন্থাগারটি আপনি আপনার ডাটাবেস ক্রিয়াকলাপ সম্পাদন করতে ব্যবহার করছেন তা কোনও সাধারণ ইউনিটের পরীক্ষার সুযোগ না হওয়া উচিত, কারণ আপনি এটি লেখেন নি।
আপনার ইন্টিগ্রেশন টেস্ট স্যুটে, এই বিধিনিষেধগুলি শিথিল করা হয়েছে। এখন আপনি পারেনডিজাইন টেস্টগুলি যা ডাটাবেসগুলিকে স্পর্শ করে তা নিশ্চিত করে নিন যে আপনি যে কোডটি লিখেছেন সে কোডটি আপনার দুর্দান্ত কোডের সাথে খেলেছে। এই দুটি টেস্ট স্যুটটি আলাদা করা উচিত, তবে আপনার ইউনিট টেস্ট স্যুটটি যত দ্রুত চালিত হয় তত বেশি কার্যকর (তাই আপনি দ্রুত যাচাই করতে পারবেন যে তাদের কোড সম্পর্কে বিকাশকারীদের দ্বারা করা সমস্ত বক্তব্য এখনও রয়েছে), এবং প্রায় সংজ্ঞা অনুসারে, একটি ইন্টিগ্রেশন টেস্ট বাহ্যিক সংস্থাগুলিতে যুক্ত হওয়া নির্ভরতার কারণে প্রস্থের আদেশের দ্বারা ধীর। বাহ্যিক সংস্থানগুলি লক করে দেওয়া পরীক্ষাগুলি কার্যকর করে, যাতে বিকাশকারীরা স্থানীয়ভাবে এই একই পরীক্ষাগুলি চালিয়ে একে অপরের পায়ের আঙ্গুলগুলিতে পদক্ষেপ না নেয়, যাতে বিল্ড-বট হ্যান্ডেলটি প্রতি কয়েক ঘন্টা পরে আপনার সম্পূর্ণ ইন্টিগ্রেশন স্যুটটি চালায় Let আর যদি বিল্ড ভেঙে যায়, তবে কী? বিল্ড-বট সম্ভবত কখনও যেমন বিল্ড ব্যর্থ হয় তা নিশ্চিত করার ক্ষেত্রে আরও অনেক বেশি গুরুত্ব দেওয়া হয়।
এখন, আপনি এটি কীভাবে কঠোরভাবে মেনে চলতে পারেন তা ডেটাবেসগুলিতে সংযোগ স্থাপন এবং অনুসন্ধানের জন্য আপনার সঠিক কৌশলের উপর নির্ভরশীল। অনেক ক্ষেত্রে যেখানে আপনাকে অবশ্যই "বেয়ার-হাড়" ডেটা অ্যাক্সেস কাঠামো ব্যবহার করতে হবে, যেমন ADO.NET এর SQLConnication এবং SqlStatement অবজেক্টস, আপনার দ্বারা বিকাশ করা একটি সম্পূর্ণ পদ্ধতি বিল্ট-ইন পদ্ধতি কল এবং অন্যান্য কোড থাকতে পারে যা একটি থাকার উপর নির্ভরশীল ডাটাবেস সংযোগ, এবং তাই আপনি এই পরিস্থিতিতে সর্বোত্তম কাজটি করতে পারেন পুরো ফাংশনটিকে মক করে এবং আপনার ইন্টিগ্রেশন টেস্ট স্যুটগুলিতে বিশ্বাস। এটি পরীক্ষার উদ্দেশ্যে নির্দিষ্ট কোডের রেখাগুলি প্রতিস্থাপনের জন্য আপনার ক্লাসগুলি ডিজাইন করতে কতটা ইচ্ছুক তার উপরও নির্ভর করে (যেমন টোপাই পদ্ধতির প্যাটার্নের বিষয়ে টবির পরামর্শ, যা একটি ভাল কারণ এটি "আংশিক উপহাস" অনুমতি দেয়
যদি আপনার ডেটা অধ্যবসায় মডেল যদি আপনার ডেটা লেয়ারের কোডের উপর নির্ভর করে (যেমন ট্রিগার, সঞ্চিত প্রকস ইত্যাদি) তবে আপনি নিজেই কোড লেখার ব্যায়াম করার উপায় ছাড়া অন্য কোনও উপায় নেই যা পরীক্ষা করে ডেটা স্তরের অভ্যন্তরে থাকে বা ক্রসকে অতিক্রম করে develop আপনার অ্যাপ্লিকেশন রানটাইম এবং DBMS এর মধ্যে সীমানা। একজন পিউরিস্ট এই প্যাটার্নটি বলবেন, এই কারণে কোনও ওআরএম এর মতো কোনও কিছুর পক্ষে এড়ানো উচিত। আমি মনে করি না যে আমি এতদূর যেতে পারি; এমনকি ভাষা-সংহত প্রশ্ন এবং অন্যান্য সংকলক-পরীক্ষিত, ডোমেন-নির্ভর জেদী দৃistence়তার ক্রিয়াকলাপের যুগে, আমি কেবলমাত্র সঞ্চিত পদ্ধতির মাধ্যমে উন্মুক্ত অপারেশনগুলিতে ডাটাবেস লক করার মান দেখি এবং অবশ্যই এই জাতীয় সঞ্চিত পদ্ধতিগুলি স্বয়ংক্রিয়ভাবে ব্যবহার করে যাচাই করতে হবে পরীক্ষা। তবে, এই জাতীয় পরীক্ষাগুলি ইউনিট পরীক্ষা নয়। তারা একীকরণ হয় পরীক্ষা।
আপনার যদি এই পার্থক্য নিয়ে সমস্যা হয় তবে এটি সাধারণত সম্পূর্ণ "কোড কভারেজ" ওরফে "ইউনিট পরীক্ষার কভারেজ" এর উপর ভিত্তি করে উচ্চ গুরুত্বের ভিত্তিতে থাকে। আপনি নিশ্চিত করতে চান যে আপনার কোডের প্রতিটি লাইন একটি ইউনিট পরীক্ষার দ্বারা আচ্ছাদিত। এর মুখে একটি মহৎ লক্ষ্য, তবে আমি হোগওয়াশ বলি; মানসিকতা এই নির্দিষ্ট ক্ষেত্রে থেকে দূরে প্রসারিত অ্যান্টি-প্যাটার্নগুলিতে নিজেকে ঘৃণা করে, যেমন নিরীক্ষণহীন পরীক্ষাগুলি লেখায় যা কার্যকর করে তবে অনুশীলন করে নাতোমার গোপন সংকেত. একমাত্র কভারেজ সংখ্যার খাতিরে এই জাতীয় প্রান্তগুলি আপনার ন্যূনতম কভারেজটি শিথিল করার চেয়ে বেশি ক্ষতিকারক। আপনি যদি নিশ্চিত করতে চান যে আপনার কোডবেসের প্রতিটি লাইন কোনও না কোনও স্বয়ংক্রিয় পরীক্ষার দ্বারা সম্পাদিত হয়েছে, তবে এটি সহজ; কোড কভারেজ মেট্রিক গণনা করার সময়, সংহতকরণ পরীক্ষা অন্তর্ভুক্ত। এমনকি আপনি আরও এক ধাপ এগিয়ে যেতে পারেন এবং এই বিতর্কিত "ইতিনো" পরীক্ষাগুলি ("কেবল নামেই সংহতকরণ") এবং আপনার ইউনিট পরীক্ষা স্যুট এবং এই উপ-বিভাগের ইন্টিগ্রেশন টেস্টগুলির মধ্যে (যা এখনও যুক্তিসঙ্গতভাবে দ্রুত চালানো উচিত) আপনার ঘাটতি হওয়া উচিত সম্পূর্ণ কভারেজ কাছাকাছি।