python 单元测试错误,指示无透支



我一直在做一个测试,每次运行我的代码时,它都会显示下面的错误代码:

test_savings_account_cannot_withdraw_more_than_current_balance 失败 在第 48 行,在 test_savings_account_cannot_withdraw_more_than_current_balance self.assertEquals(消息,'不能在当前账户之外提款 balance', msg='no overtreats') 断言错误: 没有透支**

class BankAccount:
    def withdraw(self):
        pass
    def deposit(self):
        pass
class SavingsAccount(BankAccount):
    def __init__(self, balance=500):
        self.balance = balance
    def deposit(self, amount):
        if (amount <= 0):
            return "Invalid deposit amount"
        else:
            self.balance += amount
        return self.balance
    def withdraw(self, amount):
        if(amount <= 0):
            return "Invalid withdraw amount"
        elif(self.balance <= 500):
            return "Cannot withdraw beyond the minimum account balance"
        elif(amount > self.balance):
            return "Cannot withdraw beyond the current account balance"
        else:
            self.balance -= amount
            return self.balance    

class CurrentAccount(BankAccount):
    def __init__(self, balance=0):
        self.balance = balance
    def deposit(self, amount):
        if (amount <= 0):
            return "Invalid deposit amount"
        else:
            self.balance += amount
            return self.balance
    def withdraw(self, amount):
        if (amount <= 0):
            return "Invalid withdraw amount"
        elif (amount >= self.balance):
            return "Cannot withdraw beyond the current account balance"
        else:
        self.balance -= amount
        return self.balance

单元测试是

import unittest
class CurrentAccountTestCases(unittest.TestCase):
    def setUp(self):
        self.ca = CurrentAccount()
    def tearDown(self):
        del self.ca
    def test_current_account_is_instance_of_bank_account(self):
        self.assertTrue(isinstance(self.ca, BankAccount), msg='CurrentAccount is not a subclass of BankAccount')
    def test_current_account_can_deposit_valid_amounts(self):
        balance = self.ca.deposit(1500)
        self.assertEquals(balance, 1500)
    def test_current_account_cannot_withdraw_more_than_current_balance(self):
      message = self.ca.withdraw(1500)
      self.assertEquals(message, 'Cannot withdraw beyond the current account balance', msg='No overdrafts')
    def test_current_account_can_withdraw_valid_cash_amounts(self):
        self.ca.deposit(23001)
        self.ca.withdraw(437)
        self.assertEquals(self.ca.balance, 22564, msg='Incorrect balance after withdrawal')
class SavingsAccountTestCases(unittest.TestCase):
    def setUp(self):
self.sa = SavingsAccount()
    def tearDown(self):
      del self.sa
    def test_savings_account_is_instance_of_bank_account(self):
      self.assertTrue(isinstance(self.sa, BankAccount), msg='SavingsAccount is not a subclass of BankAccount')
    def test_savings_account_can_deposit_valid_amounts(self):
      init_balance = self.sa.balance
      balance = self.sa.deposit(1500)
      self.assertEquals(balance, (1500 + init_balance), msg='Balance does not match deposit')
    def test_savings_account_cannot_withdraw_more_than_current_balance(self):
      message = self.sa.withdraw(1500)
      self.assertEquals(message, 'Cannot withdraw beyond the current account balance', msg='No overdrafts')
    def test_savings_account_can_withdraw_valid_amounts_successfully(self):
      self.sa.deposit(2300)
      self.sa.withdraw(543)
      self.assertEquals(2257, self.sa.balance, msg="Incorrect balance after withdrawal")

因为您的默认余额是 500,而您的金额是 1500,所以它将返回的字符串是"无法提取超过最低账户余额",而不是您期望的字符串"无法提取超过当前账户余额"

最新更新