এটা দুর্দান্ত প্রশ্ন! আমি মনে করি এর মূল কারণটি নিম্নলিখিত, আমরা কেবল ইউনিট পরীক্ষার জন্যই ইউএনইটি ব্যবহার করছি using সুতরাং প্রশ্নটি ছড়িয়ে দেওয়া উচিত:
- আমার একীকরণে আমার কি মকিতো.ভারিফাই () ব্যবহার করা উচিত (বা অন্য কোনও-ইউনিট-এর তুলনায় আরও বেশি ইউনিট পরীক্ষার) পরীক্ষায় ?
- আমার ব্ল্যাক-বাক্স ইউনিট-পরীক্ষায় আমি কি মকিতো.ভারিফাই () ব্যবহার করব ?
- আমার সাদা-বাক্স ইউনিট-পরীক্ষায় আমি কি মকিতো.ভারিফাই () ব্যবহার করব ?
সুতরাং আমরা যদি ইউনিট-এর চেয়েও বেশি ইউনিট পরীক্ষাকে অগ্রাহ্য করব, তবে প্রশ্নটি পুনরায় জবাব দেওয়া যেতে পারে " মকিতো.ভারিফাই () এর সাথে সাদা-বাক্স ইউনিট-পরীক্ষার ব্যবহার ইউনিট পরীক্ষা এবং আমার প্রয়োগের মধ্যে দুর্দান্ত দম্পতি তৈরি করে, আমি কি কিছু " ধূসর-বাক্স তৈরি করতে পারি? " " ইউনিট-টেস্টিং এবং এর জন্য আমার থাম্বের কী নিয়ম ব্যবহার করা উচিত "।
এখন, আসুন এই ধাপে ধাপে সমস্ত এর মাধ্যমে।
* - আমার একীকরণে আমার কি মকিতো.ভারিফাই () ব্যবহার করা উচিত? (বা অন্য কোনও-ইউনিট-এর চেয়ে উচ্চতর ইউনিট পরীক্ষার) পরীক্ষায় আমি কি ? * আমি মনে করি উত্তরটি পরিষ্কারভাবে হ'ল না, তদতিরিক্ত আপনি এর জন্য মক ব্যবহার করবেন না। আপনার পরীক্ষা যতটা সম্ভব বাস্তব প্রয়োগের কাছাকাছি হওয়া উচিত। আপনি সম্পূর্ণ ব্যবহারের ক্ষেত্রে পরীক্ষা করছেন, অ্যাপ্লিকেশনটির বিচ্ছিন্ন অংশ নয়।
* ব্ল্যাক বক্স বনাম হোয়াইট-বক্স ইউনিট-পরীক্ষা * আপনি যদি ব্ল্যাক-বক্স পদ্ধতির ব্যবহার করছেন যা আপনি আসলে করছেন, আপনি সরবরাহ করছেন (সমস্ত সমতুল্য শ্রেণি) ইনপুট, একটি রাজ্য এবং পরীক্ষাগুলি যা আপনি প্রত্যাশিত আউটপুট পাবেন। এই পদ্ধতির ক্ষেত্রে সাধারণভাবে মক ব্যবহার করা ন্যায়সঙ্গত (আপনি কেবল নকল করুন যে তারা সঠিক কাজ করছে; আপনি সেগুলি পরীক্ষা করতে চান না), তবে মকিতো.ভারিফাই () কে কল করা অতিমাত্রায়।
আপনি যদি সত্যিই কী করছেন হোয়াইট-বক্স পদ্ধতির ব্যবহার করে থাকেন, আপনি নিজের ইউনিটের আচরণটি পরীক্ষা করছেন । এই পদ্ধতির মধ্যে মকিতো.ওয়ারিফাই () এ কল করা অপরিহার্য, আপনার ইউনিটটি আপনি যেমন প্রত্যাশা করছেন তেমন আচরণ করে তা যাচাই করা উচিত।
ধূসর বাক্স-পরীক্ষার জন্য থাম্বগুলির নিয়ম
শ্বেত-বাক্স পরীক্ষার ক্ষেত্রে সমস্যাটি এটি একটি উচ্চ মিলন তৈরি করে। একটি সম্ভাব্য সমাধান হ'ল ধূসর বাক্স-পরীক্ষা করা, সাদা বাক্স-পরীক্ষা নয়। এটি কালো এবং সাদা বাক্স পরীক্ষার সংমিশ্রণ। আপনি সত্যই আপনার ইউনিটের আচরণটি সাদা-বাক্স পরীক্ষার মতো পরীক্ষা করছেন, তবে সাধারণভাবে আপনি যখন এটি সম্ভব হয় তখন এটি বাস্তবায়ন-অজ্ঞায়িতিক করে তোলেন । যখন এটি সম্ভব হয়, আপনি কেবল ব্ল্যাক-বাক্সের মতো একটি চেক তৈরি করবেন, কেবলমাত্র দৃser়ভাবে দাবি করে যে আউটপুটটি আপনার প্রত্যাশিত। সুতরাং, আপনার প্রশ্নের সারমর্মটি যখন এটি সম্ভব হয়।
এটা সত্যিই কঠিন। আমার ভাল উদাহরণ নেই তবে আমি আপনাকে উদাহরণ দিতে পারি। যে ক্ষেত্রে উপরে সমান () বনাম সমতুল্য আইগনোর কেস () দিয়ে উল্লিখিত হয়েছিল সে ক্ষেত্রে আপনাকে মকিতো.ভেরিফাই () কল করা উচিত নয়, কেবল আউটপুটটি যুক্ত করা উচিত। যদি আপনি এটি না করতে পারেন তবে আপনার কোডটি ছোট ইউনিটে বিভক্ত করুন, যতক্ষণ না আপনি এটি করতে পারেন। অন্যদিকে, ধরুন আপনার কাছে কিছু @ সার্ভিস রয়েছে এবং আপনি @ ওয়েব-সার্ভিস লিখেছেন যা মূলত আপনার @ সার্ভিসের উপর আবরণ রয়েছে - এটি @ সার্ভিসে সমস্ত কল প্রেরণ করে (এবং কিছু অতিরিক্ত ত্রুটি পরিচালনা করে)। এক্ষেত্রে মকিতো.ভেরিফাই () এ ফোন করা অপরিহার্য, আপনি @ সার্ভিসের জন্য আপনার সমস্ত চেকটি নকল করবেন না, যাচাই করে আপনি সঠিক সার্ভিস তালিকার সাথে @ সার্ভিসে কল করছেন যথেষ্ট।