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

تست‌نویسی برای حساب بانکی

برای واریز و برداشت، تست مسیر اصلی، موجودی ناکافی، ورودی نامعتبر و موجودی اولیهٔ منفی بنویس.

صورت مسئله

برای واریز و برداشت، تست مسیر اصلی، موجودی ناکافی، ورودی نامعتبر و موجودی اولیهٔ منفی بنویس.

مثال حل‌شده

تست حساب

متوسط

صورت مسئله

کدام حالت‌ها را تست می‌کنی و هر تست دقیقاً چه رفتاری را ثابت می‌کند؟

راه‌حل گام‌به‌گام

    ۴ گام باقی مانده
    import unittest
    
    class BankAccount:
        def __init__(self, balance=0.0):
            if balance < 0:
                raise ValueError("موجودی اولیه منفی.")
            self._balance = balance
        def deposit(self, amount):
            if amount <= 0:
                raise ValueError("مبلغ نامعتبر.")
            self._balance += amount
        def withdraw(self, amount):
            if amount <= 0:
                raise ValueError("مبلغ نامعتبر.")
            if amount > self._balance:
                raise ValueError("موجودی کافی نیست.")
            self._balance -= amount
        @property
        def balance(self):
            return self._balance
    
    class TestBank(unittest.TestCase):
        def test_deposit_increases(self):
            acc = BankAccount(100)
            acc.deposit(50)
            self.assertEqual(acc.balance, 150)
    
        def test_overdraft_keeps_balance(self):
            acc = BankAccount(100)
            with self.assertRaises(ValueError):
                acc.withdraw(200)
            self.assertEqual(acc.balance, 100)
    
        def test_negative_rejected(self):
            with self.assertRaises(ValueError):
                BankAccount(-5)
    
    if __name__ == "__main__":
        unittest.main()

    مطالب مرتبط

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

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

    وضعیت پیشرفت برای تست‌نویسی برای حساب بانکی