কম্পিউটার টিউটোরিয়াল

পাইথনে ফাংশন এক্সেপশন থ্রো করে কিনা টেস্ট করার পদ্ধতি

পাইথনের unittest মডিউল ব্যবহার করে ফাংশন নির্দিষ্ট এক্সেপশন থ্রো করে কিনা তা টেস্ট করা যায়। assertRaises মেথড দুটিভাবে ব্যবহার করা যায় — কনটেক্সট ম্যানেজার হিসেবে বা কলেবল হিসেবে।

উদাহরণ: unittest ব্যবহার করে

import unittest

class MyTestCase(unittest.TestCase):
    def test_cannot_add_int_and_str(self):
        # কনটেক্সট ম্যানেজার হিসেবে (প্রস্তাবিত)
        with self.assertRaises(TypeError):
            1 + '1'

    def test_cannot_add_int_and_str_v2(self):
        # কলেবল হিসেবে
        import operator
        self.assertRaises(TypeError, operator.add, 1, '1')

if __name__ == '__main__':
    unittest.main(exit=False)

আউটপুট

..
----------------------------------------------------------------------
Ran 2 tests in 0.001s
OK

ব্যাখ্যা

  • Context Manager (with): আরও পঠনযোগ্য, এক্সেপশন সঠিকভাবে ক্যাচ ও ক্লিন-আপ হয়।
  • Callable form: assertRaises(ErrorType, callable, *args, **kwargs) — ফাংশন এবং এর আর্গামেন্ট পাস করুন।
  • দুই পদ্ধতিতেই টেস্ট পাস হয় যদি এক্সপেক্টেড এক্সেপশন থ্রো হয়।

pytest-এ (আধুনিক বিকল্প)

import pytest

def test_add_int_str():
    with pytest.raises(TypeError):
        1 + '1'

pytest আরও সিম্পল এবং পাওয়ারফুল টেস্টিং ফ্রেমওয়ার্ক।

  1. Matplotlib-এ মাল্টিভ্যারিয়েট ফাংশন প্লট করুন

  2. পাইথনে raise কীওয়ার্ড দিয়ে এক্সসেপশন রেইজ করা

  3. পাইথনে ফাংশন ডিফাইন করার পদ্ধতি

  4. পাইথনে ল্যাম্বডা ফাংশন ব্যবহারের পদ্ধতি