ইন্টিগ্রেশন পরীক্ষার জন্য নাম নির্বাচন করা


13

ইউনিট পরীক্ষার মাধ্যমে ডোমেনটি বেশ ছোট, তাই এটি সহজ। আমি ওশেরোভের methodName_conditions_result()স্কিমটি ব্যবহার করেছি এবং এটি খুব পরিষ্কার পেয়েছি।

তবে ইন্টিগ্রেশন টেস্টগুলির সাথে আমার মনে হচ্ছে এটি খুব দীর্ঘ নাম করবে এবং আমি এর জায়গায় কী রাখব methodName? আমি কীভাবে ইন্টিগ্রেশন টেস্ট ক্লাসের নাম দেব?

একীকরণ পরীক্ষার নামের বাস্তব বিশ্বের উদাহরণগুলি অত্যন্ত স্বাগত। আমি আশা করি উত্তরগুলি আমাকে এই পরীক্ষাগুলি আরও ভালভাবে বুঝতে সাহায্য করবে।


1
কেন এই প্রশ্নটি নিম্নচাপ করা হয়েছিল (দুবার)?
বড়স্টোন

উত্তর:


6

আমি ইউনিট এবং ইন্টিগ্রেশন পরীক্ষার সাথে কিছুটা ভিন্ন পন্থা নিই। আমি যতটা সম্ভব বৈশিষ্ট্যের উপর ভিত্তি করে তাদের নামকরণ করার চেষ্টা করি। তারপরে সমস্ত পরীক্ষা পাস করার পরে আপনি সমস্ত বৈশিষ্ট্যগুলির একটি তালিকা দেখতে পান যা কাজ করে এবং কাজ করে না।

  • canRegisterUser
  • canHandleInvalidInput
  • canRelayDocumentBetweenServers
  • canCreateSchema
  • canLoginUsingWebService
  • canLoginUsingBasicAuth
  • canDeleteDocument
  • canAddDocument

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

আমি বাগ-ফিক্সগুলির জন্য কোনও ইউনিট পরীক্ষার নামকরণের প্রস্তাব দিয়েছিলাম যেমন একটি অনন্য উপসর্গ যেমন bugfix1002বাগটি ঠিক করা হয়েছে তা প্রমাণ করার জন্য।


5

এটি সত্যই ইউনিট পরীক্ষাগুলিতে সহায়তা করার জন্য লেখা হয়েছিল তবে আপনি দেখতে পাবেন যে একই নিয়মগুলি ইন্টিগ্রেশন পরীক্ষায় প্রয়োগ করা হয় (কমবেশি):

পরীক্ষা করে দেখুন সাতটি ধাপ !

আমার পছন্দটি হ'ল আপনি যেটিকেই ডাকেন না কেন এটি সত্যই পরীক্ষার স্যুট নাম (আমাদের কার্ডের ফিক্সারের নাম), আপনি যে প্রভাবটি যাচাই করছেন, এবং দৃ the়তার বার্তা যা ত্রুটির কারণটি পরিষ্কার করে দেখা উচিত। যদি আপনি আশেরভের নামকরণের সাথে এটি সবচেয়ে সহজ খুঁজে পান তবে আমি আন্তরিকভাবে এটিকে সমর্থন করি। তবে সম্ভবত কৌশলটি হ'ল আপনি শর্ত, ফলাফল এবং ব্যতিক্রমকে যেভাবে বোঝায় তার সাথে "পদ্ধতি" অংশটি পূরণ করুন।

"অ্যাকাউন্টডোসেন্টএক্সিস্ট" নামে একটি পরীক্ষা সহ "মেকিংএডপোজিট" নামে একটি স্যুট এবং "ততক্ষণ প্রত্যাশিত নোনুসুচ্যাক্ট ব্যতিক্রম - কোনওটিই পাইনি" বলে একটি ত্রুটি পেয়ে আমি খুশি।

বিকল্প হিসাবে যদি আপনি আমাকে "::" দিয়ে পরীক্ষার স্যুট নামটি আলাদা করতে আপত্তি না করেন তবে আমি "অ্যাকাউন্টহ্যান্ডলিং :: মেকিংএডিপোজিট_অ্যাকউন্টডোডসেন্টএক্সিস্ট_এইচএক্সসেপশন" দিয়ে ঠিক আছি

কার্ডটি আরও পরামর্শ দেয় যে আপনার যদি ভাল নাম না থাকে তবে চালিয়ে যান এবং আপনার কাছে যখন কেউ আসে তখন একটি ভাল নাম দিন (আশা করি সিআই-তে কোড জমা দেওয়ার আগে ভাল)।


2

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

পদ্ধতিগুলি বৈশিষ্ট্যের একটি ধারণা পরীক্ষা করতে হবে এবং প্রচুর পরিমাণে জোর অন্যথায় নির্দেশ করতে পারে। (রেফার্ট। "ক্লিন কোড: অ্যাবিল সফটওয়্যার ক্র্যাফটম্যানশিপের একটি হ্যান্ডবুক" পৃষ্ঠা 132, রবার্ট মার্টিনের দ্বারা)


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

@ অ্যান্ড্রু, আমি বলিনি যে এটি একটি কঠোর নিয়ম, তবে দৃ .়সংখ্যার সংখ্যার পর্যবেক্ষণ বৈশিষ্ট্যটির ধারণাটি পরীক্ষার গাইডলাইনে সহায়তা করতে পারে যে পদ্ধতিতে প্রতি পদ্ধতিতে এক নয়। তাদের সুযোগে কিছুটা সীমাবদ্ধ রাখা ব্যর্থ হলে সমস্যাগুলি কোথায় তা সনাক্ত করতে সহায়তা করে। তবে আমি আপনাকে দেব যে একটি দৃsert়তা বলা ভাল নয়, এবং আমি এটি সম্পাদনা করব, ধন্যবাদ।
টার্নকি

1

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.