প্রাথমিক নোট
আমি বিভিন্ন ধরণের পরীক্ষার পার্থক্যে যাব না, ইতিমধ্যে সে সম্পর্কে এই সাইটগুলিতে কয়েকটি প্রশ্ন রয়েছে।
আমি যা আছে তা নিয়ে যাচ্ছি এবং যা বলেছে: "কোনও প্রয়োগের ক্ষুদ্রতম বিচ্ছিন্ন ইউনিটটি পরীক্ষা করার" অর্থে ইউনিট টেস্টিং যা থেকে এই প্রশ্নটি আসলে উত্পন্ন
বিচ্ছিন্নতা সমস্যা
কোনও প্রোগ্রামের ক্ষুদ্রতম বিচ্ছিন্ন ইউনিট কী । ঠিক আছে, আমি এটি দেখতে পাচ্ছি, এটি (অত্যন্ত?) আপনি কোন ভাষায় কোড দিচ্ছেন তার উপর নির্ভর করে।
মিশেল পালকরা একটি সিমের ধারণা সম্পর্কে কথা বলেছেন : [WEwLC, p31]
একটি সিম এমন একটি জায়গা যেখানে আপনি সেই জায়গায় না সম্পাদনা করেই আপনার প্রোগ্রামে আচরণ পরিবর্তন করতে পারেন।
এবং বিশদটিতে না গিয়ে আমি বুঝতে পারছি একটি ইউনিট - ইউনিট টেস্টিংয়ের প্রসঙ্গে - এমন একটি প্রোগ্রামে এমন একটি স্থান হতে যেখানে আপনার "পরীক্ষা" আপনার "ইউনিট" এর সাথে ইন্টারফেস করতে পারে।
উদাহরণ
ইউনিট পরীক্ষা - বিশেষত সি ++ - এর অধীনে পরীক্ষার অধীনে থাকা কোড থেকে আরও সীম যুক্ত করতে প্রয়োজন যা কোনও নির্দিষ্ট সমস্যার জন্য কঠোরভাবে ডাকা হবে।
উদাহরণ:
- ভার্চুয়াল ইন্টারফেস যুক্ত করা যেখানে নন-ভার্চুয়াল প্রয়োগ যথেষ্ট হবে
- বিভক্তকরণ - জেনারালাইজিং (?) - একটি (ছোট) শ্রেণি আরও একটি "পরীক্ষা" যোগ করার সুবিধার্থে "ন্যায়বিচার"।
- পরীক্ষাগুলির জন্য স্বাধীনভাবে তাদের সংকলনের সুবিধার্থে একটি একক-এক্সিকিউটেবল প্রজেক্টকে আপাতদৃষ্টিতে "স্বতন্ত্র" libs, "just" এ বিভক্ত করা।
প্রশ্নটি
আমি কয়েকটি সংস্করণ চেষ্টা করব যা আশা করে একই পয়েন্টটি সম্পর্কে জিজ্ঞাসা করবে:
- ইউনিট টেস্টগুলির জন্য যেভাবে ইউনিট পরীক্ষাগুলির জন্য কোনও "অ্যাপ্লিকেশন" এর উপযোগী একটি অ্যাপ্লিকেশন কোড গঠনের প্রয়োজন হয় বা এটি অ্যাপ্লিকেশন কাঠামোর পক্ষে আসলেই উপকারী?
- কোড সাধারণীকরণ প্রয়োজন হয় যে এটা ইউনিট-testable কিছু দরকারী করা হয় কিন্তু ইউনিট পরীক্ষা?
- ইউনিট পরীক্ষার যুক্ত করা কি অহেতুক সাধারণকরণে বাধ্য করে?
- সমস্যা ডোমেন থেকে দেখা যায় কি আকারের ইউনিট টেস্টগুলি "সর্বদা" কোডের জন্যও কোডের জন্য সাধারণভাবে কার্যকর?
আমার মনে আছে থাম্বের একটি নিয়ম যা বলেছিল যে কোডটি ব্যবহার না করে দ্বিতীয় স্থান না পাওয়া পর্যন্ত আপনার প্রয়োজন না হওয়া অবধি সাধারণকরণ করবেন না। ইউনিট টেস্ট সহ, সর্বদা দ্বিতীয় স্থান থাকে যা কোড ব্যবহার করে - যথা ইউনিট পরীক্ষা। তাহলে এই কারণটি কি সাধারণীকরণের পক্ষে যথেষ্ট?