আমার কাছে ক্লাসগুলির একটি গুচ্ছ রয়েছে যা মানগুলির বৈধতা যাচাই করে। উদাহরণস্বরূপ, একটি RangeValidator
শ্রেণি নির্দিষ্ট মানের মধ্যে একটি মান আছে কিনা তা পরীক্ষা করে।
প্রতিটি ভ্যালিডেটার শ্রেণিতে দুটি পদ্ধতি থাকে: is_valid(value)
যা প্রত্যাবর্তন করে True
বা False
মানের উপর নির্ভর করে এবং ensure_valid(value)
কোন নির্দিষ্ট মান পরীক্ষা করে এবং হয় মানটি বৈধ হলে কিছুই করে না, বা যদি মান পূর্বনির্ধারিত নিয়মের সাথে মেলে না তবে একটি নির্দিষ্ট ব্যতিক্রম ছুঁড়ে দেয়।
এই পদ্ধতির সাথে বর্তমানে দুটি ইউনিট পরীক্ষা যুক্ত রয়েছে:
এটি যা একটি অবৈধ মান পাস করে এবং ব্যতিক্রমটি ছুঁড়েছিল তা নিশ্চিত করে।
def test_outside_range(self): with self.assertRaises(demo.ValidationException): demo.RangeValidator(0, 100).ensure_valid(-5)
যা একটি বৈধ মান পাস করে।
def test_in_range(self): demo.RangeValidator(0, 100).ensure_valid(25)
যদিও দ্বিতীয় পরীক্ষাটি তার কাজ করে - ব্যতিক্রম ছুঁড়ে ফেলা হলে ব্যর্থ হয় এবং ensure_valid
কোনও কিছু না ফেললে সফল হয় — যে assert
ভিতরে কোনও অদৃশ্য নেই তা সত্যই অদ্ভুত দেখাচ্ছে। যে কেউ এই জাতীয় কোড পড়ে তাৎক্ষণিকভাবে নিজেকে জিজ্ঞাসা করবেন কেন এমন একটি পরীক্ষা রয়েছে যা উপস্থিতি কিছুই করছে না বলে মনে হচ্ছে ।
কোনও মান ফেরত না দেয় এবং এর পার্শ্ব প্রতিক্রিয়া না করে এমন পরীক্ষার পদ্ধতিগুলি পরীক্ষা করার সময় কি এটি এখনকার অনুশীলন? নাকি আমার পরীক্ষা আবার অন্যভাবে লিখতে হবে? অথবা কেবল আমি কী করছি তা ব্যাখ্যা করে একটি মন্তব্য দিন?
self
রেফারেন্সের জন্য সংরক্ষণ করে ) এবং কোনও ফলাফল না দেয় তবে তা খাঁটি ফাংশন নয়।
void
অনেক ভাষায় ডাকা হয় এবং নির্বিকার নিয়ম থাকে।) বিকল্পভাবে, আপনি অসীম হতে পারেন লুপ (যা "ফলাফল কোনও ফলাফল না দিয়েও কাজ করে" এর অর্থ আসলে কোনও ফল দেয় না
unit -> unit
যা ইউনিটটিকে যাদুগতভাবে বিশেষ-কেসযুক্ত কিছু না করে মানক ডেটাটাইপ হিসাবে বিবেচনা করে। দুর্ভাগ্যক্রমে, এটি কেবল ইউনিটটি দেয় এবং অন্য কিছুই করে না।