আমরা একটি নতুন সফ্টওয়্যার বিকাশ প্রকল্পে স্ট্রাকচারম্যাপ ব্যবহার করছি । দলের সদস্যদের মধ্যে একটি ইউনিট পরীক্ষা কার্যকর করেছে যা মূলত স্ট্রাকচারম্যাপ ধারক কনফিগারেশন পরীক্ষা করে । এটি নিম্নলিখিতগুলি করে এটি করে;
- আমাদের অ্যাপ্লিকেশন নেমস্পেসের ক্লাসগুলির জন্য কনফিগার করা সংস্থাগুলির সংখ্যার উদাহরণ গণনা করে।
- শ্রেণি পর্যায়ে প্রত্যাশিত দৃষ্টান্তগুলি সংজ্ঞায়িত করে
- আশ্বাস দেয় যে প্রত্যাশিত দৃষ্টান্তগুলি মোট পাওয়া উদাহরণগুলির সাথে মেলে।
- আশ্বাস দেয় যে প্রত্যাশিত উদাহরণগুলি পরীক্ষায় সংজ্ঞায়িতগুলির সাথে মেলে
এর উদাহরণ হ'ল;
var repositories = container.GetAllInstances<IEnvironmentRepository>();
Assert.AreEqual(1, repositories .Count());
foundInstances = foundInstances + repositories .Count();
নিম্নলিখিত ক্লাসের জন্য আমাদের 'ইউনিট পরীক্ষা' রয়েছে;
public MyClass(IEnvironmentRepository environmentRepository)
{
}
এই পরীক্ষাগুলিতে, আমরা আইএনএনভায়রনমেন্ট রিপোসিটোরির উপহাস করি, সুতরাং এটি লাইভ সিস্টেমে যেমন ঘটে থাকে তেমন ধারক থেকে এটি ইনজেকশন দেওয়া হবে না।
একজন সহকর্মী "ইউনিট পরীক্ষা কেবল এটির নিজস্ব কনফিগারেশন পরীক্ষা করে" এর লাইনে একটি মন্তব্যে স্ট্রাকচারম্যাপ কনফিগারেশনে ইউনিট পরীক্ষা উপেক্ষা করে। এটি অবশ্যই পরীক্ষার উদ্দেশ্য ছিল এবং আমার মতে এটি পুরোপুরি বৈধ। আমি সেই লোকটিকে জিজ্ঞাসা করেছি যে পরীক্ষাটি উপেক্ষা করেছে IEnvironmentRepository( স্ট্রাকচার ম্যাপ কনফিগারেশন সরিয়ে ফেলতে (এখনও পরীক্ষাটি উপেক্ষা করা হয়নি) এবং পূর্ণ ইউনিট পরীক্ষা স্যুট চালাতে, তারা সবাই পাস করেছে। আমরা তখন অ্যাপ্লিকেশনটি চালিয়েছিলাম এবং এটি পড়ে গেল কারণ ধারক কনফিগারেশনটি এখন অবৈধ। আমার মতে, এটি পরীক্ষার মান প্রমাণ করেছে, আমার সহকর্মী এখনও দ্বিমত পোষণ করেছেন। তিনি কেবল বলেছিলেন যে আমাদের কনফিগারেশন পরীক্ষা করা উচিত নয়, তবে আমি মনে করি এটি একটি ইউনিট পরীক্ষার রেমিটের মধ্যে ভাল হবে।
তাই বেশ কয়েকটি প্রশ্ন;
- এটি কী একটি বৈধ ইউনিট পরীক্ষা - আমরা আমাদের ধারকটির কনফিগারেশন পরীক্ষা করছি, কাঠামোগত কাজ করে না (তবে আমি ওভারল্যাপটি দেখতে পাচ্ছি)
- যদি তা না হয় তবে আপনি কনফিগারেশনটি পরীক্ষা না করে কীভাবে যাচাই করতে পারেন। আপনি কীভাবে কাউকে দুর্ঘটনাক্রমে প্রয়োজনীয় কোডের লাইনটি মুছে ফেলা এবং এটি পরীক্ষা করে আটকাতে পারেন?
- করা উচিত
MyClassইউনিট পরীক্ষার উদাহরণস্বরূপ সমাধানIEnvironmentRepositoryধারক থেকে এবং এই পাস?