怎么建一个卖东西的网站,营销型企业网站有哪些,如何做html网站,网络营销专业课程写在前面 这本书是我们老板推荐过的#xff0c;我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后#xff0c;我突然思考#xff0c;对于测试开发工程师来说#xff0c;什么才更有价值呢#xff1f;如何让 AI 工具更好地辅助自己写代码#xff0c;或许…写在前面 这本书是我们老板推荐过的我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后我突然思考对于测试开发工程师来说什么才更有价值呢如何让 AI 工具更好地辅助自己写代码或许优质的单元测试是一个切入点。 就我个人而言这本书确实很有帮助。第一次读的时候很多细节我都不太懂但将书中内容应用到工作中后我受益匪浅。比如面对一些让人抓狂的代码设计时书里的方法能让我逐步深入理解代码的逻辑与设计。 作为一名测试开发工程师我想把学习这本书的经验分享给大家希望能给大家带来帮助。因为现在工作中大多使用 Python 代码所以我把书中JAVA案例都用 Python 代码进行了改写 。 问题背景说明
在现实世界中货币交易往往涉及不同币种之间的运算。仅实现同币种的加法运算无法满足实际需求。因此需要引入“银行”对象来处理汇率转换问题完善货币加法运算功能使其能够正确处理不同币种的相加操作增强货币类的实用性和功能性。
考虑到实际情况货币加法可能涉及不同币种这需要我们进一步优化代码在Python TDD流程中不断完善功能。
13.1 思路说明
引入“银行”Bank对象来处理汇率转换问题。将货币的总和视为一个表达式每种货币是表达式的原子形态。通过Bank类的方法来根据汇率将不同币种的货币转换后再进行加法运算。
13.2 测试代码
import unittestclass Bank:def reduce(self, source, to):return Money.dollar(10) # 暂时的哑实现class Money:def __init__(self, amount, currency):self.amount amountself.currency currencydef plus(self, addend):return Money(self.amount addend.amount, self.currency)def reduce(self, bank, to):return bank.reduce(self, to)class Dollar(Money):def __init__(self, amount):super().__init__(amount, USD)class TestMoneyAddition(unittest.TestCase):def test_simple_addition(self):five_dollars1 Dollar(5)five_dollars2 Dollar(5)bank Bank()result five_dollars1.plus(five_dollars2).reduce(bank, USD)self.assertEqual(result.amount, 10)self.assertEqual(result.currency, USD)if __name__ __main__:unittest.main()13.3 源码说明
新增Bank类目前reduce方法是哑实现仅返回一个固定的Money对象。Money类中新增reduce方法用于将货币对象通过Bank类进行转换。在测试用例中对相加后的货币对象调用reduce方法并验证结果。虽然当前Bank类功能不完善但为后续实现多币种加法奠定了基础。