第7章:Python TDD测试Franc对象乘法功能

news/2025/1/22 4:21:58/

写在前面


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

问题背景说明

当程序需要处理多种货币时,除了美元,其他货币(如法郎Franc)也需要类似的金额操作功能。以测试Franc对象的乘法功能为例,能够在已有Dollar类的开发基础上,进一步拓展货币类的功能范围,同时也能检验开发流程和测试方法在处理类似对象时的通用性和有效性。

当在Python TDD项目中需要处理新的货币对象Franc(法郎)时,我们可以借鉴之前Dollar对象的测试和开发经验。

7.1 思路说明

Franc对象与Dollar对象类似,都用于表示货币金额,并且需要具备金额乘法运算的功能。我们参考Dollar类的结构和测试方法,为Franc类编写测试用例,确保其乘法运算功能的正确性。

7.2 测试代码

python">import unittestclass Franc:def __init__(self, amount):self.amount = amountdef times(self, multiplier):return Franc(self.amount * multiplier)class TestFrancMultiplication(unittest.TestCase):def test_franc_multiplication(self):five = Franc(5)result = five.times(2)self.assertEqual(result.amount, 10)if __name__ == '__main__':unittest.main()

7.3 源码说明

Franc类的结构与Dollar类相似,包含构造函数__init__用于初始化金额,times方法用于进行金额乘法运算。测试类TestFrancMultiplication继承自unittest.TestCasetest_franc_multiplication测试用例创建了一个金额为5Franc对象five,调用times方法并传入乘数2,然后断言运算结果的金额是否等于10,以此验证Franctimes方法的正确性。


http://www.ppmy.cn/news/1565129.html

相关文章

基于springboot+thymeleaf+Redis仿知乎网站问答项目源码

项目介绍 基于springbootthymeleafRedis仿知乎网站问答项目源码,可以作为毕业设计项目参考学习 按照需要一定动手能力 发文章,发视频,发想法,提问回答,注册登录 开发环境 使用技术:springbootthymeleafRe…

【Docker】搭建一个功能强大的自托管虚拟浏览器 - n.eko

前言 本教程基于群晖的NAS设备DS423的docker功能进行搭建,DSM版本为 DSM 7.2.2-72806 Update 2。 n.eko 支持多种类型浏览器在其虚拟环境中运行,本次教程使用 Chromium​ 浏览器镜像进行演示,支持访问内网设备和公网地址。 简介 n.eko 是…

C/C++ 时间复杂度(On)

定义: 在计算机科学中,时间复杂性,又称时间复杂度,算法的时间复杂度是一个函数,它定性描述该算法的运行时间。这是一个代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低…

线程池遇到未处理的异常会崩溃吗?

线程池中的 execute 和 submit 方法详解 目录 引言execute 方法 使用示例代码 submit 方法 2.1 提交 Callable 任务2.2 提交 Runnable 任务 遇到未处理异常 3.1 execute 方法遇到未处理异常3.2 submit 方法遇到未处理异常 小结 引言 在多线程编程中,线程池是提高性…

搭建一个基于Spring Boot的外贸平台

搭建一个基于Spring Boot的外贸平台涉及多个模块的开发,包括用户管理、产品管理、订单管理、支付集成、物流跟踪等。以下是一个简化的步骤指南,帮助你快速搭建一个基础的外贸平台。 1. 项目初始化 首先,使用Spring Initializr生成一个Spri…

MyBatis基于XML的详细使用-缓存

MyBatis基于XML的详细使用-缓存 1、介绍 MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制。 为了使它更加强大而且易于配置,我们对 MyBatis 3 中的缓存实现进行了许多改进。 默认情况下,只启用了本地的会话缓存&a…

Mousetrap:打造高效键盘快捷键体验的JavaScript库

Mousetrap:打造高效键盘快捷键体验的JavaScript库 前言 在当今快节奏的数字世界中,用户对Web应用的交互效率提出了更高的要求。 键盘快捷键作为一种提升操作便捷性和速度的有效手段,被广泛应用于各种应用中。 然而,实现一套稳定…

【王树森搜索引擎技术】概要01:搜索引擎的基本概念

1. 基本名词 query:查询词SUG:搜索建议文档:搜索结果标签/筛选项 文档单列曝光 文档双列曝光 2. 曝光与点击 曝光:用户在搜索结果页上看到文档,就算曝光文档点击:在曝光后,用户点击文档&…