رفتن به محتوای اصلی
برنامه‌سازی پیشرفته با پایتون درس‌نامهٔ آزاد
مفهوم متوسط ۹ دقیقه

تست واحد

آناتومی تست خوب، unittest در برابر pytest، تست استثنا و نام‌گذاری روشن.

import unittest

class TestDiscount(unittest.TestCase):
    def test_student_gets_30_percent(self):
        self.assertAlmostEqual(discounted(100, 30), 70.0)

    def test_invalid_percent_raises(self):
        with self.assertRaises(ValueError):
            discounted(100, 150)

تست خوب سه خاصیت دارد: مستقل (ترتیب اجرا اثر ندارد)، تک‌رفتار (اسمش می‌گوید چه را ثابت می‌کند) و پایدار (بدون خواب تصادفی و وابستگی به ساعت/شبکه). اول مرزها (صفر، خالی، منفی)، بعد مسیر اصلی، بعد استثناها. در pytest همان منطق با assert ساده و pytest.raises نوشته می‌شود — انتخاب ابزار سلیقه است، انضباطِ تست اجباری.

مطالب مرتبط

از همین بخش و با برچسب‌های مشترک

این مطلب را خواندید؟ آن را علامت بزنید تا پیشرفت شما روی همین دستگاه ذخیره شود.

وضعیت پیشرفت برای تست واحد