ধরুন আমার কাছে বেস ক্লাসের কর্মচারী থেকে প্রাপ্ত একটি ক্লাস ম্যানেজার রয়েছে এবং সেই কর্মচারীর একটি পদ্ধতি getEmail আছে ( যা ম্যানেজারের উত্তরাধিকার সূত্রে প্রাপ্ত ) । আমার কি পরীক্ষা করা উচিত যে কোনও পরিচালকের getEmail () পদ্ধতির আচরণটি আসলে একজন কর্মীর মতোই?
এই পরীক্ষাগুলি লেখার সময় আচরণটি একই রকম হবে তবে অবশ্যই ভবিষ্যতের কোনও সময় কেউ এই পদ্ধতিটিকে ওভাররাইড করতে পারে, এর আচরণ পরিবর্তন করতে পারে এবং তাই আমার প্রয়োগটি ভেঙে দেয়। তবে মেডডলিং কোডটির অভাবে প্রয়োজনীয়ভাবে পরীক্ষা করা কিছুটা অদ্ভুত বলে মনে হয় ।
(নোট করুন যে টেস্টিং ম্যানেজার :: getEmail () পদ্ধতি ম্যানেজার :: getEmail () তৈরি / ওভাররাইড না হওয়া পর্যন্ত কোড কভারেজ (বা প্রকৃতপক্ষে কোনও কোড মানের মেট্রিক (?)) উন্নত করে না ) )
(যদি উত্তরটি "হ্যাঁ" হয়, তবে বেস এবং উত্পন্ন শ্রেণীর মধ্যে ভাগ করা টেস্ট পরিচালনা করার পদ্ধতি সম্পর্কে কীভাবে যেতে হবে সে সম্পর্কে কিছু তথ্য কার্যকর হবে))
প্রশ্নের সমতুল্য সূত্র:
যদি একটি উত্পন্ন শ্রেণি একটি বেস শ্রেণীর থেকে কোনও পদ্ধতি উত্তরাধিকার সূত্রে প্রাপ্ত হয় তবে আপনি উত্তরাধিকার সূত্রে প্রাপ্ত পদ্ধতিটি আশা করছেন কিনা তা আপনি কীভাবে (পরীক্ষা) প্রকাশ করবেন:
- বেসটি ঠিক এখন যেমন করে তেমন আচরণ করুন (যদি বেসের আচরণ পরিবর্তন হয় তবে উত্পন্ন পদ্ধতির আচরণটি পরিবর্তন করে না);
- সর্বকালের জন্য বেসের মতো ঠিক একই আচরণ করুন (যদি বেস শ্রেণীর আচরণ পরিবর্তন হয়, উত্পন্ন শ্রেণীর আচরণও পরিবর্তিত হয়); অথবা
- এটি চাই তবে আচরণ করুন (আপনি এই পদ্ধতির আচরণের বিষয়ে চিন্তা করবেন না কারণ আপনি কখনই এটি কল করেন না)।
Manager
শ্রেণি প্রাপ্তEmployee
হওয়া প্রথম বড় ভুল ছিল।