যেহেতু আমি ইউনিট পরীক্ষায় সত্যই অভিজ্ঞ নই, তাই আমি কিছু নিয়ম সংগ্রহ করার চেষ্টা করছি যা আমি প্রথমে শিখব।
আপনি কখনও কখনও যে সমস্যার মুখোমুখি হয়েছিলেন তার জন্য "বিধি" শিখতে সাবধান হন। যদি আপনি কিছু "নিয়ম" বা "সেরা অনুশীলন" জুড়ে আসেন তবে আমি এই নিয়মটি কোথায় "অনুমিত" হওয়া উচিত তার একটি সাধারণ খেলনা উদাহরণ সন্ধান করার পরামর্শ দেব এবং "বিধি" কী বলে তা উপেক্ষা করে নিজেই সেই সমস্যাটি সমাধান করার চেষ্টা করব ।
এই ক্ষেত্রে, আপনি 2 বা 3 সাধারণ ক্লাস এবং তাদের প্রয়োগ করা উচিত এমন কিছু আচরণ নিয়ে আসতে চেষ্টা করতে পারেন। প্রাকৃতিক যে কোনও উপায়ে ক্লাস প্রয়োগ করুন এবং প্রতিটি আচরণের জন্য একটি ইউনিট পরীক্ষা লিখুন। আপনার যে সমস্যার মুখোমুখি হয়েছে তার একটি তালিকা তৈরি করুন, যেমন আপনি যদি একভাবে কাজ শুরু করে থাকেন তবে ফিরে যেতে হবে এবং পরে পরিবর্তন করতে হবে; জিনিসগুলি কীভাবে একসাথে খাপ খায় সে সম্পর্কে আপনি যদি বিভ্রান্ত হন; আপনি যদি বয়লারপ্লেট লিখে বিরক্ত হন; প্রভৃতি
তারপরে "বিধি" অনুসরণ করে একই সমস্যাটি সমাধান করার চেষ্টা করুন। আবার, আপনি যে সমস্যার মুখোমুখি হয়েছেন তার একটি তালিকা তৈরি করুন। তালিকাগুলির তুলনা করুন এবং নিয়মটি অনুসরণ করার সময় কোন পরিস্থিতি আরও ভাল হতে পারে এবং কোনটি নাও হতে পারে তা ভেবে দেখুন।
আপনার প্রকৃত প্রশ্নের হিসাবে, আমি একটি বন্দর এবং অ্যাডাপ্টারের পদ্ধতির পক্ষে থাকি, যেখানে আমরা "কোর লজিক" এবং "পরিষেবাদি" (এটি খাঁটি ফাংশন এবং কার্যকর পদ্ধতিগুলির মধ্যে পার্থক্য করার মতো) similar
মূল যুক্তি সমস্যাটি ডোমেনের উপর ভিত্তি করে অ্যাপ্লিকেশনটির "অভ্যন্তর" গণনা করা। মনে হচ্ছে ক্লাস থাকতে পারে User, Document, Order, Invoice, ইত্যাদিতে এর জরিমানা কোর শ্রেণীর কল করতে newঅন্য কোর শ্রেণীর জন্য, যেহেতু তারা "অভ্যন্তরীণ" বাস্তবায়ন বিবরণ। উদাহরণস্বরূপ, একটি Orderশক্তি তৈরি করা একটি আদেশ তৈরি করে Invoiceএবং Documentকী অর্ডার দেওয়া হয়েছিল তার বিশদও তৈরি করে । পরীক্ষার সময় এগুলি উপহাস করার দরকার নেই, কারণ এটি হ'ল প্রকৃত জিনিস যা আমরা পরীক্ষা করতে চাই!
পোর্টস এবং অ্যাডাপ্টারগুলি হ'ল মূল যুক্তি কীভাবে বাইরের বিশ্বের সাথে যোগাযোগ করে। আর এখানেই পছন্দ Database, ConfigFile, EmailSender, ইত্যাদি বাস। এগুলিই পরীক্ষাগুলি কঠোর করে তোলে তাই এটি মূল যুক্তির বাইরে এগুলি তৈরি করার পরামর্শ দেওয়া হয় এবং প্রয়োজন অনুযায়ী এগুলি পাস করা (হয় নির্ভরতা ইনজেকশন সহ, বা পদ্ধতি আর্গুমেন্ট ইত্যাদি)।
এইভাবে, মূল যুক্তি (যা অ্যাপ্লিকেশন-নির্দিষ্ট অংশ, যেখানে গুরুত্বপূর্ণ ব্যবসায়িক যুক্তিটি বাস করে, এবং সবচেয়ে মন্থের বিষয়) এটি নিজেই পরীক্ষা করা যায়, ডাটাবেস, ফাইল, ইমেল ইত্যাদির যত্ন না নিয়ে without আমরা কেবল কয়েকটি উদাহরণের মানগুলি পাস করতে পারি এবং পরীক্ষা করে দেখতে পারি যে আমরা সঠিক আউটপুট মান পেয়েছি।
পোর্টস এবং অ্যাডাপ্টারগুলিকে ব্যবসায়ের লজিক সম্পর্কে চিন্তা না করেই ডাটাবেস, ফাইল সিস্টেম ইত্যাদির জন্য মক ব্যবহার করে আলাদাভাবে পরীক্ষা করা যেতে পারে। আমরা কেবল কয়েকটি উদাহরণের মানগুলি পাস করতে পারি এবং নিশ্চিত করতে পারি যে সেগুলি সংরক্ষণ / পঠন / প্রেরণ / ইত্যাদি হচ্ছে। উপযুক্তভাবে।