iis7添加php网站,页面设计作品,国外免费虚拟主机,深圳市移动端网站建设写在前面 这本书是我们老板推荐过的#xff0c;我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后#xff0c;我突然思考#xff0c;对于测试开发工程师来说#xff0c;什么才更有价值呢#xff1f;如何让 AI 工具更好地辅助自己写代码#xff0c;或许…写在前面 这本书是我们老板推荐过的我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后我突然思考对于测试开发工程师来说什么才更有价值呢如何让 AI 工具更好地辅助自己写代码或许优质的单元测试是一个切入点。 就我个人而言这本书确实很有帮助。第一次读的时候很多细节我都不太懂但将书中内容应用到工作中后我受益匪浅。比如面对一些让人抓狂的代码设计时书里的方法能让我逐步深入理解代码的逻辑与设计。 作为一名测试开发工程师我想把学习这本书的经验分享给大家希望能给大家带来帮助。因为现在工作中大多使用 Python 代码所以我把书中JAVA案例都用 Python 代码进行了改写 。  问题背景说明 
在面对不同币种货币转换的需求时之前的代码结构和实现方式可能无法满足。为了使代码能够正确实现货币转换功能需要对代码进行重构和方法调整。这不仅可以解决当前的需求变化问题还能优化代码结构为后续可能的功能扩展奠定更好的基础。 
为了使不同币种货币转换的测试用例通过需要对代码进行重构和方法调整这是Python TDD适应变化的重要体现。 
15.1 思路说明 
在Bank类中实现汇率存储和查询功能在Money类的reduce方法中根据汇率进行货币转换。同时调整相关类的结构和方法调用确保代码逻辑的正确性。 
15.2 测试代码 
import unittestclass Bank:def __init__(self):self.rates  {}def addRate(self, from_currency, to_currency, rate):self.rates[(from_currency, to_currency)]  ratedef rate(self, from_currency, to_currency):if from_currency  to_currency:return 1return self.rates.get((from_currency, to_currency), 1)def reduce(self, source, to):if isinstance(source, Money):rate  self.rate(source.currency, to)return Money(source.amount / rate, to)class Money:def __init__(self, amount, currency):self.amount  amountself.currency  currencydef reduce(self, bank, to):return bank.reduce(self, to)class Dollar(Money):def __init__(self, amount):super().__init__(amount, USD)class Franc(Money):def __init__(self, amount):super().__init__(amount, CHF)class TestCurrencyConversion(unittest.TestCase):def test_reduce_money_different_currency(self):bank  Bank()bank.addRate(CHF, USD, 2)franc  Franc(2)result  franc.reduce(bank, USD)self.assertEqual(result.amount, 1)self.assertEqual(result.currency, USD)if __name__  __main__:unittest.main()15.3 源码说明 
Bank类中新增rates字典用于存储汇率。addRate方法用于添加汇率rate方法用于查询汇率考虑了同币种汇率为1的情况。reduce方法根据汇率将Money对象转换为指定货币。Money类的reduce方法调用Bank类的reduce方法。测试用例验证了不同币种货币转换功能的正确性。