第4章:Python TDD消除重复与降低依赖实践

打印 上一主题 下一主题

主题 846|帖子 846|积分 2538

写在前面


这本书是我们老板推荐过的,我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后,我突然思考,对于测试开发工程师来说,什么才更有价值呢?如何让 AI 工具更好地辅助自己写代码,大概优质的单元测试是一个切入点。 就我个人而言,这本书确实很有资助。第一次读的时间,很多细节我都不太懂,但将书中内容应用到工作中后,我受益匪浅。比如面对一些让人抓狂的代码设计时,书里的方法能让我渐渐深入理解代码的逻辑与设计。 作为一名测试开发工程师,我想把学习这本书的经验分享给大家,盼望能给大家带来资助。由于现在工作中大多使用 Python 代码,所以我把书中JAVA案例都用 Python 代码进行了改写 。
问题配景说明

随着代码量的增加,如果存在大量重复代码,会使代码的维护成本急剧上升。当功能必要修改时,可能必要在多个地方进行雷同的更改,容易出现遗漏和不同等的情况。同时,代码之间的紧密依赖也会导致某个模块的厘革影响到其他多个模块,降低代码的机动性和可扩展性。因此,在开发过程中,及时消除重复代码和降低依赖关系是保持代码康健发展的重要使命。
在Python TDD的开发过程中,消除代码重复和降低代码之间的依赖关系是进步代码质量和可维护性的关键。
4.1 思路说明

分析之前代码中可能存在的重复部门,比如硬编码的乘法运算。通过封装这些重复的逻辑,将其会合到Dollar类的方法中,从而减少代码重复。同时,考虑到未来可能的厘革,优化代码结构,降低差异模块之间的依赖,使代码更易于修改和扩展。
4.2 测试代码

  1. import unittest
  2. class Dollar:
  3.     def __init__(self, amount):
  4.         self.amount = amount
  5.     def times(self, multiplier):
  6.         return self.amount * multiplier
  7. class TestDollar(unittest.TestCase):
  8.     def test_dollar_multiplication(self):
  9.         five = Dollar(5)
  10.         result = five.times(2)
  11.         self.assertEqual(result, 10)
  12.     def test_dollar_multiplication_different_input(self):
  13.         ten = Dollar(10)
  14.         result = ten.times(3)
  15.         self.assertEqual(result, 30)
  16. if __name__ == '__main__':
  17.     unittest.main()
复制代码
4.3 源码说明

在Dollar类的times方法中,我们封装了金额乘法的逻辑。如果之前存在多处硬编码的乘法运算,现在可以统一调用times方法来实现,避免了重复代码。从依赖角度看,当必要修改金额乘法的盘算逻辑时,只必要在times方法中进行修改,而不必要在全部使用乘法的地方逐一修改,降低了代码之间的耦合度,进步了代码的可维护性。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

忿忿的泥巴坨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表