مثال حلشده
متوسط تست حساب
صورت مسئله
کدام حالتها را تست میکنی و هر تست دقیقاً چه رفتاری را ثابت میکند؟
راهحل گامبهگام
۴ گام باقی مانده
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()