ইউনিট পরীক্ষা কি এবং কেন এটি গুরুত্বপূর্ণ?

  • প্রধান
  • খবর
  • ইউনিট পরীক্ষা কি এবং কেন এটি গুরুত্বপূর্ণ?

শাটারস্টক / ভিক্টোরিয়া কাজাকোভা

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

একটি ইউনিট পরীক্ষা কি?

একটি 'ইউনিট' হল আপনার অ্যাপ্লিকেশনের সফ্টওয়্যারের সবচেয়ে ছোট অংশ (যেমন ফাংশন, ক্লাস বা উপাদান)। স্বতন্ত্র ইউনিট পরীক্ষাগুলি নিশ্চিত করে যে আপনার অ্যাপ্লিকেশনের প্রধান উপাদানটি প্রত্যাশিতভাবে আচরণ করে এবং আপনার কোডের একটি এলাকায় ভবিষ্যতের প্রতিশ্রুতি অন্যটিতে আপনার কোডটি ভাঙবে না। যদি তাই হয়, সম্ভবত আপনার নতুন বা পুরানো কোডে একটি বাগ আছে (বা একটি খারাপভাবে লিখিত/সেকেলে পরীক্ষা)।

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

ইউনিট পরীক্ষাগুলি কোডের ছোট স্নিপেটের মধ্যে সীমাবদ্ধ নয়; আপনি বৃহত্তর উপাদানগুলিও পরীক্ষা করতে পারেন যা অন্যান্য বৈশিষ্ট্যগুলি ব্যবহার করে, যা পরীক্ষা করা যেতে পারে। এটি আপনাকে আরও কার্যকরভাবে বাগগুলি ট্র্যাক করতে সহায়তা করে: বাগটি কি বড় উপাদান বস্তুর পদ্ধতিতে, নাকি আপনার ব্যবহার করা অন্য উপাদানগুলির মধ্যে একটিতে?

যদিও ইউনিট পরীক্ষাগুলি গুরুত্বপূর্ণ, তবে সেগুলিই আপনার চালানোর জন্য একমাত্র পরীক্ষা নয়। এন্ড-টু-এন্ড UI পরীক্ষা চালানো এবং ম্যানুয়াল মানব পর্যালোচনা অনেক যৌক্তিক ত্রুটি ধরবে যা প্রতিটি ইউনিট প্রত্যাশিতভাবে কাজ করার সময় ইউনিট পরীক্ষাগুলি মিস করতে পারে।

ইউনিট পরীক্ষাগুলি ক্লিনার কোড বেসের দিকে নিয়ে যায়

লিগ্যাসি কোড বেসগুলির প্রধান সমস্যাগুলির মধ্যে একটি হল ডাইনোসর কোড - কোডটি এত পুরানো এটি মূলত একটি ব্ল্যাক বক্স, এটি কীভাবে কাজ করে তা আপনার কোনও ধারণা নেই তবে এটি কোনওভাবে কাজ করে এবং ভয়ের কারণে আপনি রিফ্যাক্টর করতে চান না সবকিছু ভেঙ্গে দিতে পারে। .

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

আপনি যে প্রকৃত ফাংশনটি পরীক্ষা করছেন তার আগে প্রায়শই আপনি নিজের পরীক্ষা লিখতে সক্ষম হবেন। আপনি যদি জানেন যে আপনার ফাংশন কী, পরীক্ষাটি লিখলে প্রথমে আপনাকে আপনার কোডের শেষ ফলাফল এবং এটি কীসের জন্য দায়ী তা ভাবতে বাধ্য করে।

সম্পর্কিত: TypeScript কি এবং আমি ভ্যানিলা জেএস এর পরিবর্তে এটি ব্যবহার করব?

আপনি যদি ইউনিট পরীক্ষার এই প্রভাবটি পছন্দ করেন তবে আপনি টাইপস্ক্রিপ্টে আগ্রহী হতে পারেন, জাভাস্ক্রিপ্টের একটি সংকলিত সুপারসেট যা এটিকে দৃঢ়ভাবে টাইপ করে। আপনি এখনও ইউনিট পরীক্ষা লিখতে চাইবেন, কিন্তু কোডিং করার সময় কোন ফাংশন কী ধরনের প্রদান করে এবং গ্রহণ করে তা জানা খুবই দরকারী বৈশিষ্ট্য।

কিভাবে ইউনিট পরীক্ষা চালাতে হয়

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

একটি ইউনিট পরীক্ষা সাধারণত তিনটি পর্যায় নিয়ে গঠিত:

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

যদি কোনো দাবি ব্যর্থ হয়, ইউনিট পরীক্ষায় ব্যর্থ হয় এবং আপনি কী ভুল হয়েছে, আপনি কী আশা করেছিলেন এবং আসলে কী ফিরে এসেছে তার একটি বিস্তারিত লগ এবং স্ট্যাক ট্রেস পাবেন।

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

|_+_|

আপনি নিম্নলিখিত বিবৃতি দিয়ে এই ফাংশন পরীক্ষা করতে পারেন:

|_+_|

সাধারণত এটি নিম্নলিখিত ফাংশনের সাথে সংরক্ষিত হয় |_+_|। আপনি পরীক্ষা চালানোর সময় জেস্ট স্বয়ংক্রিয়ভাবে এই ফাইলগুলি সন্ধান করবে।

সম্পর্কিত: জাভাস্ক্রিপ্ট ইউনিট পরীক্ষার জন্য জেস্টের ভূমিকা

|_+_| ফাংশনটি তুলনাকারী, এই ক্ষেত্রে এটি মৌলিক সমতা পরীক্ষা করে। আরও অনেক আছে, যেমন |_+_|, যা বস্তুর সমতা পরীক্ষা করে এবং |_+_|, যা অ্যারের বিষয়বস্তু পরীক্ষা করে। আপনি এটির সমর্থিত তুলনাকারীদের সম্পূর্ণ তালিকার জন্য জেস্ট ডক্স পড়তে পারেন।

আপনি কি মনে করেন?