写在前面
这本书是我们老板推荐过的,我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后,我突然思考,对于测试开发工程师来说,什么才更有价值呢?如何让 AI 工具更好地辅助自己写代码,或许优质的单元测试是一个切入点。 就我个人而言,这本书确实很有帮助。第一次读的时候,很多细节我都不太懂,但将书中内容应用到工作中后,我受益匪浅。比如面对一些让人抓狂的代码设计时,书里的方法能让我逐步深入理解代码的逻辑与设计。 作为一名测试开发工程师,我想把学习这本书的经验分享给大家,希望能给大家带来帮助。因为现在工作中大多使用 Python 代码,所以我把书中JAVA案例都用 Python 代码进行了改写 。
问题背景说明
在实际的货币相关程序开发中,需要对不同货币金额进行操作和管理。以美元(Dollar)为例,创建一个专门的类来处理美元金额的运算和存储是很有必要的。通过Python TDD方式构建Dollar
类,不仅可以清晰地定义美元金额的操作逻辑,还能利用测试用例保证类的功能正确性,提高代码的可靠性和可维护性。
接下来,我们开始在Python TDD环境下构建Dollar
类,用于处理金额相关的操作。这是朝着实现更复杂货币功能迈出的重要一步。
2.1 思路说明
根据实际需求,Dollar
类需要具备存储金额的能力,并且能够进行金额的乘法运算。我们定义构造函数来初始化金额,同时定义乘法运算方法,让Dollar
类可以按照我们的预期进行金额操作。
2.2 测试代码
import unittest
class Dollar:
def __init__(self, amount):
self.amount = amount
def times(self, multiplier):
return self.amount * multiplier
class TestDollarMultiplication(unittest.TestCase):
def test_dollar_multiplication(self):
five = Dollar(5)
result = five.times(2)
expected = 10
self.assertEqual(result, expected)
if __name__ == '__main__':
unittest.main()
2.3 源码说明
在上述代码中,Dollar
类包含一个构造函数__init__
,它接受一个参数amount
,并将其赋值给实例变量self.amount
,用于初始化Dollar
对象的金额。times
方法接受一个乘数multiplier
,通过将实例变量amount
与multiplier
相乘,返回乘法运算的结果。测试类TestDollarMultiplication
继承自unittest.TestCase
,test_dollar_multiplication
测试用例创建了一个金额为5
的Dollar
对象five
,调用times
方法进行乘法运算,将结果与预期值10
进行比较,验证times
方法的正确性。