【发布时间】:2021-10-03 17:56:45
【问题描述】:
我是编程初学者,我刚开始我的编程课程。我们正在研究 OOP,而我正在为一个银行项目而苦苦挣扎。
基本上,我们已经获得了测试用例来测试我们的代码是否正常工作。我们将不得不为项目的第二部分编写自己的测试用例。
我目前对给定测试用例的问题是我无法通过最后一项检查成功传输方法的测试。
我已经编写了我的转账方法,并在我的 BankAccount 模块上对其进行了测试,并且似乎正在执行预期的操作:从 account1 提取资金并将其转移到 account2。但是,测试用例仍然失败。
据我所知,测试用例正在查看以下 3 个条件:提款账户的账户余额、存款账户的账户余额和转账金额。
知道我是否在这里遗漏了什么吗?
以下是我的存款和转账方式
#Method to process money deposits. Receives deposit_amount variable (float) and return class variable account_balance incremented by deposit amount
def deposit (self,deposit_amount):
self.account_balance += deposit_amount
#Method to make money transfers. Receives account (obj) and amount_transferred (float) arguments. Returns amount of money transferred if
#enough funds, otherwise returns None
def transfer (self, account, amount):
if amount > 0 and amount <= account.account_balance:
self.account_balance -= amount
account.deposit(amount)
else:
return None
现在,下面是检查转移成功的测试用例
# Test BANK_ACCOUNT_TEST_7: Tests transfer method for success.
amount_transferred = account_1.transfer(account_2, 20.0)
if account_1.get_balance() != 40.65 or account_2.get_balance() != 50.0 or amount_transferred != 20.0:
print('FAILED BANK_ACCOUNT_TEST_7')
return 7
我已经进行了几次试验,但仍然失败了 BANK_ACCOUNT_TEST_7。
【问题讨论】:
-
当您写:
amount_transferred = account_1.transfer(account_2, 20.0)时,您似乎希望transfer()会返回转账金额,但事实并非如此。 -
最好的银行我准备在里面开一个新账户,并会要求其他人做交易..这家银行是为富人准备的 如果我的账户金额较少,它总是会失败 疯狂的银行 XD 没有一个可以给我钱。 ??????
-
你的 if condn 是错误的 mate amount