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

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

写在前面


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

问题背景说明

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

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

7.1 思路说明

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

7.2 测试代码

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方法的正确性。

相关文章:

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

写在前面 这本书是我们老板推荐过的,我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后,我突然思考,对于测试开发工程师来说,什么才更有价值呢?如何让 AI 工具更好地辅助自己写代码,或许…...

两级式三相光伏并网逆变器Matlab/Simulink仿真模型

忘记更新最经典的光伏并网仿真模型了,作为包含经典的MPPT和并网恒功率因素的双闭环控制模型,也是很多相关专业学生的入门研究内容,光伏并网模型三相的和单相都有。 其中三相光伏并网逆变器有大功率和小功率的两种,之前早在硕士期…...

redis性能优化参考——筑梦之路

基准性能测试 redis响应延迟耗时多长判定为慢? 比如机器硬件配置比较差,响应延迟10毫秒,就认为是慢,机器硬件配置比较高,响应延迟0.5毫秒,就认为是慢。这个没有固定的标准,只有了解了你的 Red…...

Ubuntu 22.04 TLS 忘记root密码,重启修改的解决办法

1.想办法进入这个界面,我这里是BIOS引导的是按Esc按一下就行,UEFI的貌似是按Shift不得而知,没操作过。下移到Advanced options for Ubuntu,按enter 2.根据使用的内核版本,选择带「recovery mode」字样的内核版本&#…...

HTML<bdo>标签

例子 指定文本方向&#xff1a; <bdo dir"rtl"> This text will go right-to-left. </bdo> <!DOCTYPE html> <html> <body> <h1>The bdo element</h1> <p>This paragraph will go left-to-right.</p> …...

STM32+W5500+以太网应用开发+003_TCP服务器添加OLED(u8g2)显示状态

STM32W5500以太网应用开发003_TCP服务器添加OLED&#xff08;u8g2&#xff09;显示状态 实验效果3-TCP服务器OLED1 拷贝显示驱动代码1.1 拷贝源代码1.2 将源代码添加到工程1.3 修改代码优化等级1.4 添加头文件路径1.5 修改STM32CubeMX工程 2 修改源代码2.1 添加头文件2.2 main函…...

【机器学习实战中阶】使用SARIMAX,ARIMA预测比特币价格,时间序列预测

数据集说明 比特币价格预测&#xff08;轻量级CSV&#xff09;关于数据集 致谢 这些数据来自CoinMarketCap&#xff0c;并且可以免费使用该数据。 https://coinmarketcap.com/ 数据集:链接: 价格预测器 源代码与数据集 算法说明 SARIMAX&#xff08;Seasonal AutoRegressive …...

各语言镜像配置汇总

镜像配置汇总 Nodejs [ npm ]Python [ pip ] Nodejs [ npm ] // # 记录日期&#xff1a;2025-01-20// 查询当前使用的镜像 npm get registry// 设置淘宝镜像 npm config set registry https://registry.npmmirror.com/// 恢复为官方镜像 npm config set registry https://regi…...

细说STM32F407单片机电源低功耗StopMode模式及应用示例

目录 一、停止模式基础知识 1、进入停止模式 2、停止模式的状态 3、退出停止模式 4、SysTick定时器的影响 二、停止模式应用示例 1、示例功能和CubeMX项目配置 &#xff08;1&#xff09;时钟 &#xff08;2&#xff09;RTC &#xff08;3&#xff09;ADC1 &#xf…...

PHP语言的循环实现

PHP语言的循环实现详解 在当今的编程世界中&#xff0c;循环是一种不可或缺的基本构造&#xff0c;它使得我们能够重复执行某些操作&#xff0c;极大地提高了代码的复用性和可读性。在PHP语言中&#xff0c;循环的种类以及使用方式繁多&#xff0c;本文将全面探讨PHP中的循环实…...

求两个矩阵的乘积

求两个矩阵的乘积 分数 15 全屏浏览 切换布局 作者 C课程组-hwr-zy 单位 浙江大学 输入三个正整数m&#xff0c;l&#xff0c;n(0<m&#xff0c;n&#xff0c;l<10)&#xff0c;再输入两个的矩阵a&#xff08;mxl&#xff09;和b&#xff08;lxn&#xff09;。要求把a和…...

警惕IDEA 2024版重大Bug问题:LomBok失效、Gradle冲突、Spring Boot启动错误

一直以来我认为工具类的软件是越新越好&#xff0c;因为工具代表着一定的先进性&#xff1b;但是IDEA 2024好好的给我上了一课&#xff0c;比如lombok 不起作用、比如Spring Boot 3.4.x 启动报错、再比如MyBatis log plus冲突、再比如Gradle插件冲突. 一、Lombok 失效问题 请不…...

Go语言的正则表达式

Go语言的正则表达式&#xff1a;深度解析与应用实例 引言 正则表达式&#xff08;Regular Expression&#xff0c;简称 regex&#xff09;是一种用于匹配字符串的强大工具&#xff0c;广泛应用于文本处理、数据验证、解析和提取等场景。Go语言作为一种现代编程语言&#xff0…...

通过ssh连接debian

使用方法 ssh usernameipaddress [inputpasswd]root用户默认无法由ssh连接&#xff0c; 可以通过修改配置 sudo vim /etc/ssh/sshd_config去掉PermitRootLogin前的‘#’,并修改为 PermitRootLogin yes 重启sshd服务 sudo systemctl restart sshd参考 https://linuxconfig.or…...

计算机创造的奇迹——C语言

一.简介 C语言是一种较早的程序设计语言&#xff0c;诞生于1972年的贝尔实验室。1972 年&#xff0c;Dennis Ritchie 设计了C语言&#xff0c;它继承了B语言的许多思想&#xff0c;并加入了数据类型的概念及其他特性。 尽管C 语言是与 UNIX 操作系统一起被开发出来的&#xff…...

磁盘阵列服务器和普通服务器的区别

磁盘阵列服务器&#xff08;RAID Server&#xff09;和普通服务器在多个方面存在显著区别。以下是它们的主要区别&#xff1a; 1. 存储架构 磁盘阵列服务器 RAID 技术&#xff1a;使用 RAID&#xff08;冗余独立磁盘阵列&#xff09;技术&#xff0c;将多个硬盘组合成一个逻…...

搭建一个人脸识别pipeline

文章目录 概要入门所需设置你的开发环境人脸识别的工作原理数据加载和预处理建立你的人脸识别模型评估你的模型总结概要 人脸识别已发展成为一项关键技术,现已嵌入从安全系统到社交媒体平台等各个领域。在本文中,我们将逐步指导您在短短 30 分钟内使用 Python 和机器学习创建…...

Docker 之mysql从头开始——Docker下mysql安装、启动、配置、进入容器执行(查询)sql

一、Docker 之mysql安装配置 步骤一&#xff1a;拉取镜像 1. 查看是否包含已安装的mysql。 docker images | grep mysql 2. 如上图所示&#xff0c;我们有mysql镜像&#xff0c;所以不必对mysql镜像进行拉取&#xff0c;如若没有上图中的惊喜&#xff0c;使用如下命令进行拉取…...

LeetCodeHOT100:60. n个骰子的点数、4. 寻找两个正序数组的中位数

LeetCodeHOT100&#xff1a; 剑指 Offer 60. n个骰子的点数4. 寻找两个正序数组的中位数96. 不同的二叉搜索树 剑指 Offer 60. n个骰子的点数 题目&#xff1a;把n个骰子扔在地上&#xff0c;所有骰子朝上一面的点数之和为s。输入n&#xff0c;打印出s的所有可能的值出现的概率…...

apisix的authz-casbin

目录 1、apisix的auth-casbin官方介绍 2、casbin介绍和使用 2.1基本知识&#xff1a; 2.2使用例子 3、配置插件 4、postman调用 5、auth-casbin的坑 1、apisix的auth-casbin官方介绍 authz-casbin | Apache APISIX -- Cloud-Native API Gateway 2、casbin介绍和使用 c…...

Claude in Excel:原生集成的AI表格协作者

1. 项目概述&#xff1a;这不是插件&#xff0c;是Excel里长出来的AI同事“Claude in Excel”这个标题刚看到时&#xff0c;我下意识点开几个技术社区翻了一圈&#xff0c;发现多数人第一反应是&#xff1a;“又一个AI插件&#xff1f;”——其实完全不是。它根本没走传统Offic…...

DeepSeek RAG系统渗透测试全链路复现(含PoC代码与防御加固清单)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;DeepSeek RAG系统渗透测试全链路复现概览 DeepSeek RAG系统作为面向企业级知识检索增强生成的典型架构&#xff0c;其安全边界不仅涵盖LLM服务层&#xff0c;更延伸至向量数据库、检索代理、提示工程网关及外部…...

从电磁炉到户外电源:拆解单相SVPWM如何让你的逆变器更安静、更高效

从电磁炉到户外电源&#xff1a;单相SVPWM如何实现静音与高效的双重突破当你深夜用电磁炉煮面时&#xff0c;是否曾被突然的蜂鸣声吓一跳&#xff1f;或是发现户外电源给设备充电时&#xff0c;散热风扇的噪音盖过了山林鸟鸣&#xff1f;这些常见问题背后&#xff0c;隐藏着一个…...

CANN-昇腾NPU-RAG推理-检索增强生成怎么部署

RAG&#xff08;Retrieval-Augmented Generation&#xff09;是 LLM 知识库的组合&#xff1a;先检索相关文档&#xff0c;再让 LLM 基于文档回答。昇腾NPU 上部署 RAG 需要两个组件&#xff1a;Embedding 模型&#xff08;做向量检索&#xff09;和 LLM&#xff08;做生成&am…...

13456

12356...

全链路压测实战:双十一级别的流量,我是这样扛住的

作为一名在质量保障领域摸爬滚打多年的测试工程师&#xff0c;我深知传统的单接口压测在如今分布式架构下的无力感。当业务流量达到双十一这种脉冲式、高并发的级别时&#xff0c;任何一个非核心链路上的“短板”都可能引发系统性的雪崩。全链路压测不再是选择题&#xff0c;而…...

0.2毫秒快速启动的操作系统

在工业控制以及航空航天等核心场景&#xff0c;极速启动就是高可靠系统的生命线。0.2毫秒超快启动搭配硬件看门狗&#xff0c;让设备在掉电重启、异常恢复时瞬时归位&#xff0c;关键任务永不延误&#xff01; https://www.bilibili.com/video/BV11mLY6VERt/?spm_id_from333.1…...

从“DOC/PDF”到“WPS”:细看GJB438C-2021文档格式要求背后的国产化信号与落地指南

从“DOC/PDF”到“WPS”&#xff1a;GJB438C-2021文档格式变革的深度解读与实施策略 当一份国家军用标准在文档格式描述中刻意删除"DOC/PDF"字样&#xff0c;转而明确标注"&#xff08;WPS&#xff09;文档处理器"时&#xff0c;这绝非简单的技术参数调整。…...

终极Chrome画中画扩展:如何在浏览器中实现高效视频多任务处理

终极Chrome画中画扩展&#xff1a;如何在浏览器中实现高效视频多任务处理 【免费下载链接】picture-in-picture-chrome-extension 项目地址: https://gitcode.com/gh_mirrors/pi/picture-in-picture-chrome-extension 想要在浏览网页、处理文档的同时继续观看视频内容吗…...

Raspberry Pi Debug Probe:RP2040嵌入式开发的调试利器与实战指南

1. 项目概述&#xff1a;为什么你需要一个Raspberry Pi Debug Probe&#xff1f;如果你玩过树莓派Pico或者任何基于RP2040芯片的开发板&#xff0c;肯定遇到过这样的场景&#xff1a;写好的代码&#xff0c;点一下“上传”&#xff0c;然后……就没有然后了。板子上的LED没按你…...