2017-01-20 2 views
-2

Я работаю на испытания и каждый раз, когда я запускаю мой код отображается код ошибки ниже:питон UnitTest ошибка указывает на отсутствие овердрафты

test_savings_account_cannot_withdraw_more_than_current_balance Failure in line 48, in test_savings_account_cannot_withdraw_more_than_current_balance self.assertEquals(message, 'Cannot withdraw beyond the current account balance', msg='No overdrafts') AssertionError: No overdrafts**

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 

и UnitTest является

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") 
+0

Вам нужно задать конкретный вопрос. – Metropolis

ответ

1

Поскольку ваш баланс по умолчанию равен 500, и ваша сумма равна 1500, поэтому строка, которую вы вернете, это «Невозможно выйти за пределы минимального остатка на счете», а не тот, который вы ожидаете «Невозможно выйти за баланс текущего счета»

 Смежные вопросы

  • Нет связанных вопросов^_^