PyUnit টিউটোরিয়াল: পাইথন ইউনিট টেস্টিং ফ্রেমওয়ার্ক (উদাহরণ সহ)

ইউনিট টেস্টিং কি?

অংশ পরিক্ষাকরণ ভিতরে পাইথন অ্যাপ্লিকেশনগুলির বিকাশের পর্যায়ে বাগগুলি শনাক্ত করার জন্য সম্পন্ন করা হয় যখন বাগগুলি কম পুনরাবৃত্তি হয় এবং ঠিক করা কম ব্যয়বহুল হয়।

একটি ইউনিট পরীক্ষা একটি স্ক্রিপ্টেড কোড লেভেল পরীক্ষা যা পাইথনে ডিজাইন করা হয়েছে কার্যকারিতার একটি ছোট 'ইউনিট' যাচাই করার জন্য। ইউনিট পরীক্ষা হল একটি বস্তু ভিত্তিক কাঠামো যা পরীক্ষা ফিক্সচারের উপর ভিত্তি করে তৈরি।

পাইথন ইউনিট পরীক্ষার কৌশল

পাইথন ইউনিট টেস্টিং প্রধানত কোন নির্ভরশীল কোড অ্যাক্সেস না করে একটি নির্দিষ্ট মডিউল পরীক্ষা করে। ডেভেলপাররা কোডগুলিকে 'ইউনিট' -এ আলাদা করার জন্য স্টাব এবং মক -এর মতো কৌশল ব্যবহার করতে পারে এবং পৃথক টুকরাগুলিতে ইউনিট স্তরের পরীক্ষা চালাতে পারে।

  • পরীক্ষা চালিত উন্নয়ন TDD: পাইথনের সাথে ইউনিট টেস্টিং করা উচিত এবং এর জন্য ডেভেলপাররা টেস্ট-চালিত উন্নয়ন পদ্ধতি ব্যবহার করে। টিডিডি পদ্ধতিতে, আপনি প্রথমে পাইথন ইউনিট পরীক্ষাগুলি ডিজাইন করেন এবং তারপরে আপনি এই কোডটি লিখতে থাকেন যা এই বৈশিষ্ট্যটি বাস্তবায়ন করবে।
  • স্টাব এবং মকস: এগুলি দুটি প্রধান কৌশল যা নকল পদ্ধতিগুলি অনুকরণ করে যা পরীক্ষা করা হচ্ছে। ক অসম্পূর্ণ ইউনিট পরীক্ষা সঠিকভাবে চালানোর জন্য প্রয়োজনীয় কিছু নির্ভরতা পূরণ করতে ব্যবহৃত হয়। ক উপহাস অন্যদিকে একটি জাল বস্তু যা পরীক্ষা চালায় যেখানে আমরা জোর দিয়েছি।

    একটি ক্লাস বা ফাংশনের সমস্ত নির্ভরতা পরীক্ষা করার জন্য উভয় পদ্ধতির অভিপ্রায় একই।

পাইথন ইউনিট টেস্টিং ফ্রেমওয়ার্ক

ইউনিট টেস্টিং প্রক্রিয়া সহজ করতে এবং আপনার প্রকল্পের মান উন্নত করতে, এটি পাইথন ইউনিট টেস্টিং ফ্রেমওয়ার্কের সুপারিশ করা হয়। ইউনিট টেস্টিং ফ্রেমওয়ার্ক অন্তর্ভুক্ত

  • PyUnit: PyUnit কোডের স্বয়ংক্রিয় পরীক্ষার জন্য ফিক্সচার, টেস্ট কেস, টেস্ট স্যুট এবং একটি টেস্ট রানার সমর্থন করে। PyUnit এ, আপনি একই ফিক্সচার সহ সুইটগুলিতে পরীক্ষার কেসগুলি সংগঠিত করতে পারেন
  • নাক: নাকের অন্তর্নির্মিত প্লাগ-ইনগুলি আপনাকে আউটপুট ক্যাপচার, কোড কভারেজ, ডক্টেস্ট ইত্যাদি সাহায্য করে। এটি পরীক্ষা সহজ করার জন্য পাইথন ইউনিটটেস্ট প্রসারিত করে।
  • ডক্টেস্ট: ডকটেস্ট টেস্ট স্ক্রিপ্ট ফাইলের নীচে ছোট ফাংশন সহ ডকস্ট্রিংয়ে যায়। ডকটেস্ট আপনাকে ডকুমেন্টেশনে অন্তর্ভুক্ত উদাহরণগুলি চালানোর মাধ্যমে এবং আপনার প্রত্যাশিত ফলাফল ফেরত দিয়ে যাচাই করে আপনার কোড পরীক্ষা করার অনুমতি দেয়। ডক্টেস্টের ব্যবহার-কেস কম বিস্তারিত এবং বিশেষ ক্ষেত্রে ধরা পড়ে না। এগুলি একটি মডিউল এবং এর উপাদানগুলির প্রধান ব্যবহারের ক্ষেত্রে একটি অভিব্যক্তিমূলক ডকুমেন্টেশন হিসাবে দরকারী।

PyUnit দিয়ে ইউনিট টেস্টিং

Pyunit JUnit এর একটি পাইথন পোর্ট। পিউনিটের অংশ হিসাবে, ইউনিটটেস্ট মডিউলে পাঁচটি মূল শ্রেণী রয়েছে।

  • টেস্টকেস ক্লাস : টেস্টকেস ক্লাস পরীক্ষার রুটিন বহন করে এবং প্রতিটি রুটিন তৈরির জন্য এবং তারপরে পরিষ্কার করার জন্য হুক সরবরাহ করে
  • টেস্টসুইট ক্লাস : এটি একটি কালেকশন কন্টেইনার হিসাবে পূরণ করে এবং এটি একাধিক টেস্টকেস বস্তু এবং একাধিক টেস্টসাইট বস্তু ধারণ করতে পারে
  • টেস্ট লোডার ক্লাস : এই ক্লাসটি স্থানীয়ভাবে বা বাহ্যিক ফাইল থেকে সংজ্ঞায়িত পরীক্ষার কেস এবং স্যুট লোড করে। এটি একটি টেস্টসুট বস্তু নির্গত করে যা সেই স্যুট এবং কেসগুলি ধারণ করে
  • TextTestRunner ক্লাস : পরীক্ষা চালানোর জন্য এটি পরীক্ষা চালানোর জন্য একটি আদর্শ প্ল্যাটফর্ম সরবরাহ করে
  • TestResults ক্লাস : এটি পরীক্ষার ফলাফলের জন্য একটি আদর্শ কন্টেইনার সরবরাহ করে

PyUnit ব্যবহার করে পাইথন পরীক্ষার জন্য একটি টেস্ট কেস ডিজাইন করা

একটি ইউনিট পরীক্ষা একটি বেস ক্লাস, টেস্ট কেস প্রদান করে, যা নতুন টেস্ট কেস তৈরিতে ব্যবহার করা যেতে পারে। পরীক্ষার ক্ষেত্রে নকশা করার জন্য, তিনটি সেট পদ্ধতি ব্যবহার করা হয়

unittest.TestCase | _+_ |

প্রথম সেটে রয়েছে প্রি এবং পোস্ট টেস্ট হুক। সেটআপ () পদ্ধতিটি প্রতিটি পরীক্ষার রুটিনের আগে শুরু হয়, রুটিনের পরে টিয়ারডাউন ()।

পদ্ধতির দ্বিতীয় সেট পরীক্ষা চালানো নিয়ন্ত্রণ করে। উভয় পদ্ধতিই ইনপুট হিসাবে একটি বার্তা স্ট্রিং গ্রহণ করে এবং উভয়ই একটি চলমান পরীক্ষা বাতিল করে। কিন্তু skiptest () পদ্ধতিটি বর্তমান পরীক্ষা বাতিল করে দেয় যখন ব্যর্থ () পদ্ধতিটি সম্পূর্ণ ব্যর্থ হয়।

শেষ বা তৃতীয় পদ্ধতি পরীক্ষা নির্ধারণে সাহায্য করে। মেথড আইডি () টেস্টকেস অবজেক্টের নাম এবং পরীক্ষার রুটিনের একটি স্ট্রিং প্রদান করে। এবং পদ্ধতি shortDescription () প্রতিটি পরীক্ষার রুটিন শুরুতে ডকস্ট্রর মন্তব্য প্রদান করে।

পাইথন ইউনিট টেস্টিং ব্যবহারের সুবিধা

  • এটি আপনাকে উন্নয়ন চক্রের প্রথম দিকে বাগ সনাক্ত করতে সাহায্য করে
  • এটি আপনাকে আরও ভালো প্রোগ্রাম লিখতে সাহায্য করে
  • এটি অন্যান্য পরীক্ষার পদ্ধতি এবং সরঞ্জামগুলির সাথে সহজেই সিঙ্ক হয়
  • এতে অনেক কম বাগ থাকবে
  • ভবিষ্যতে খুব কম ফলাফলের সাথে এটি পরিবর্তন করা সহজ

কৃষ্ণ রুংটা সম্পর্কে

কৃষ্ণের 15 বছরেরও বেশি পেশাদার সফটওয়্যার ডেভেলপমেন্ট এবং টেস্টিং অভিজ্ঞতা রয়েছে, একজন ব্যক্তিগত অবদানকারী, প্রযুক্তিগত নেতৃত্ব এবং আজ গুরু 99 এর সিইও হিসাবে।