当前位置: 首页 > article >正文

第2章:Python TDD构建Dollar类基础

写在前面


这本书是我们老板推荐过的,我在《价值心法》的推荐书单里也看到了它。用了一段时间 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,通过将实例变量amountmultiplier相乘,返回乘法运算的结果。测试类TestDollarMultiplication继承自unittest.TestCasetest_dollar_multiplication测试用例创建了一个金额为5Dollar对象five,调用times方法进行乘法运算,将结果与预期值10进行比较,验证times方法的正确性。


http://www.kler.cn/a/512210.html

相关文章:

  • 深入探索Python人脸识别技术:从原理到实践
  • 风吹字符起,诗意Linux:一场指令与自由的浪漫邂逅(上)
  • 54,【4】BUUCTF WEB GYCTF2020Ezsqli
  • python3GUI--仿崩坏三二次元登录页面(附下载地址) By:PyQt5
  • 微软宣布Win11 24H2进入新阶段!设备将自动下载更新
  • 云原生前端开发:打造现代化高性能的用户体验
  • leetcode hot 100 -搜索二维矩阵
  • 微服务学习-Seata 解决分布式事务
  • aosp系统源码aidl文件如何查看对应生成的java文件-安卓系统开发实战小技巧分享
  • pcm | Parity Check Matrix(奇偶校验矩阵)
  • Linux 网络 序列化与反序列化~
  • 电脑如何访问手机文件?
  • 以太坊深入解析:概念与原理全面剖析
  • ToDesk云电脑、顺网云、网易云、易腾云、极云普惠云横测对比:探寻电竞最佳拍档
  • 将IDLE里面python环境pyqt5配置的vscode
  • 黑马点评之导入初始项目(java)
  • [八省联考 2018] 制胡窜
  • 畅游Diffusion数字人(14):基于3D人体网格的语音驱动手势视频生成 ECCV 2024
  • 如何使用C++来实现OPENAI协议通过OLLAMA来与AI大模型通信
  • 搭建一个基于Spring Boot的外贸平台
  • browser-use 的简单使用
  • [Datawheel学习]用Llama-index创建Agent、数据库对话Agent和RAG接入Agent
  • Python采集modBus协议数据
  • Linux网络IOv1.1介绍-纯PDF版
  • MySQL 中单独获取已知日期的年月日
  • 直驱式风电储能制氢仿真模型matlab/simulink