এই জাতীয় প্রশ্নের উত্তর দেওয়ার আগে, আপনি আসলে কী অর্জন করতে চান তা সিদ্ধান্ত নেওয়া উচিত।
আপনি কোড লিখুন। আপনি আশা করেন যে এটি তার চুক্তিটি পূরণ করেছে (অন্য কথায়, এটি যা করার কথা বলেছিল তা করে does
যুক্তিযুক্তভাবে নিশ্চিত হওয়ার জন্য যে কোডটি যা করার কথা বলেছিল তা করে, আপনি হয় তা যথেষ্ট দীর্ঘক্ষণ তাকান, বা আপনি টেস্ট কোডটি লিখে থাকেন যা আপনাকে নিশ্চিত করতে যথেষ্ট ক্ষেত্রে পরীক্ষা করে "যদি কোডটি এই সমস্ত পরীক্ষায় পাস করে তবে এটি সঠিক"।
প্রায়শই আপনি কিছু কোডের সর্বজনীনভাবে সংজ্ঞায়িত ইন্টারফেসে আগ্রহী হন। আমি যদি আপনার লাইব্রেরিটি ব্যবহার করি তবে আপনি কীভাবে এটি সঠিকভাবে কাজ করেছেন তা যত্ন করে না, কেবল এটি সঠিকভাবে কাজ করে । আমি ইউনিট পরীক্ষা করে আপনার গ্রন্থাগারটি সঠিক কিনা তা যাচাই করি।
তবে আপনি গ্রন্থাগারটি তৈরি করছেন। এটি সঠিকভাবে কাজ করা অর্জন করা কঠিন হতে পারে। ধরা যাক আমি কেবল লাইব্রেরিটি সঠিকভাবে এক্স অপারেশন করা সম্পর্কে যত্নশীল, তাই এক্স এর জন্য আমার একটি ইউনিট পরীক্ষা আছে You আপনার লাইব্রেরিটি কাজ করার জন্য আপনি এ, বি এবং সি প্রতিটি সঠিকভাবে কাজ করছেন তা যাচাই করতে পরীক্ষা যুক্ত করুন। আপনি এই পরীক্ষা চান। "ব্যক্তিগত পদ্ধতির জন্য আপনার ইউনিট পরীক্ষা করা উচিত নয়" বলাটি অর্থহীন। আপনি এই ব্যক্তিগত পদ্ধতির জন্য পরীক্ষা চান। হতে পারে যে কেউ আপনাকে বলে যে ইউনিট পরীক্ষার ব্যক্তিগত পদ্ধতিগুলি ভুল is তবে এর অর্থ শুধুমাত্র আপনি তাদের "ইউনিট টেস্ট" না বলে "ব্যক্তিগত পরীক্ষা" বা আপনি তাদের কল করতে পছন্দ করেন না কেন।
সুইফ ভাষা এই সমস্যাটিকে সমাধান করে যে আপনি এ, বি, সি কে প্রকাশ্য পদ্ধতি হিসাবে প্রকাশ করতে চান না কারণ আপনি ফাংশনগুলিকে একটি "টেস্টেবল" হিসাবে একটি বৈশিষ্ট্য প্রদান করে এটি পরীক্ষা করতে চান। সংকলকটি বেসরকারী পরীক্ষামূলক পদ্ধতিগুলি ইউনিট পরীক্ষাগুলি থেকে কল করার অনুমতি দেয়, তবে পরীক্ষার নন কোড থেকে নয়।