Python OOP银行项目transfer方法无法通过功能测试问题求助
问题修复方案
你遇到的测试不通过问题由两个明显的逻辑漏洞导致:
- 余额校验对象写反:转账前你校验的是转入账户的余额是否足够,实际应该校验的是转出账户(也就是当前
self实例)的余额大于等于转账金额 - 成功分支缺少返回值:转账成功的逻辑分支你没有显式返回转账金额,Python会默认返回
None,完全不满足测试用例对返回值的校验要求
修正后的transfer方法代码
def transfer (self, account, amount): # 校验转出账户(self)余额足够,且转账金额大于0 if amount > 0 and amount <= self.account_balance: self.account_balance -= amount account.deposit(amount) # 转账成功返回对应金额 return amount else: return None
额外注意点
你给出的deposit方法注释标注要返回更新后的账户余额,当前代码没有显式返回值,如果后续测试有用到deposit返回值的场景也需要补充return self.account_balance的逻辑,目前你的测试用例用get_balance()获取余额,暂时不影响本次测试的运行。
内容的提问来源于stack exchange,提问作者CristianA
相关产品推荐
相关产品推荐

