第1章:Python TDD基础与乘法功能测试

news/2025/1/20 19:50:41/

写在前面


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

问题背景说明

在软件开发过程中,确保代码的正确性至关重要。对于测试驱动开发(TDD)新手来说,理解其开发流程和基本测试方法是入门的关键。以简单的乘法功能作为切入点,能够帮助开发者快速熟悉如何使用Python的测试框架编写测试用例,验证代码功能是否符合预期,为后续更复杂的功能开发和测试奠定基础。

在Python测试驱动开发(TDD)的学习与实践中,我们首先从基础的测试功能入手。TDD的核心在于“测试先行”,先编写测试代码来定义功能的预期行为,然后再实现功能代码使测试通过。

1.1 思路说明

以测试乘法功能为例,我们借助Python的unittest模块来编写测试用例。这个测试用例的目的是验证一个简单乘法运算的正确性,通过断言来确保实际计算结果与预期结果一致,从而为后续更复杂的功能测试和开发奠定基础。

1.2 测试代码

python">import unittestclass TestMultiplication(unittest.TestCase):def test_multiplication(self):result = 5 * 2expected = 10self.assertEqual(result, expected)if __name__ == '__main__':unittest.main()

1.3 源码说明

在这段代码中,我们定义了一个测试类TestMultiplication,它继承自unittest.TestCase,这是unittest模块中用于编写测试用例的基类。test_multiplication方法是具体的测试用例,在这个方法里,我们计算5 * 2的结果并赋值给result,设定预期结果为10并赋值给expected,最后使用self.assertEqual(result, expected)进行断言,判断实际结果和预期结果是否相等。如果相等,测试通过;否则,测试失败。


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

相关文章

过压保护电路

过压保护原理: 当电压低于预设电平时,Q2 的基极为高电平,由于它是一个 PNP 晶体管,它关闭。并且,当 Q2 处于关闭状态时,Q1 的基极端子将为低电平,它允许电流流过它。 现在,当电压超过…

【漫话机器学习系列】052.解释平方和(Explained Sum of Squares, ESS)

解释平方和(Explained Sum of Squares, ESS) 定义 解释平方和(Explained Sum of Squares, ESS)是回归分析中用于衡量模型解释能力的一个重要指标。它表示模型通过自变量对因变量的解释程度。ESS 是因变量的预测值与其平均值之间…

【Linux系统编程】—— 虚拟内存与进程地址空间的管理:操作系统如何实现内存保护与高效分配

文章目录 程序地址空间的概念虚拟地址与进程的关系进程地址空间进程地址空间的结构为什么使用虚拟内存(虚拟地址空间) 前言: 在现代操作系统中,进程的内存管理至关重要。操作系统通过虚拟地址空间来隔离不同进程的内存,确保它们不互相干扰&am…

Android渲染Latex公式的开源框架比较

对比主流框架,介绍如下几款 1、AndroidMath 官网:https://github.com/gregcockroft/AndroidMath/tree/master 基于android原生view方式渲染 优点:速度快,开源协议 MIT license 缺点:不支持文字公式混合渲染 2、Ma…

YOLOv10-1.1部分代码阅读笔记-loss.py

loss.py ultralytics\models\utils\loss.py 目录 loss.py 1.所需的库和模块 2.class DETRLoss(nn.Module): 3.class RTDETRDetectionLoss(DETRLoss): 1.所需的库和模块 # Ultralytics YOLO 🚀, AGPL-3.0 licenseimport torch import torch.nn as nn import…

【博客之星评选】2024年度前端学习总结

故事的开端...始于2024年第一篇前端技术博客 那故事的终末...也该结束于陪伴了我一整年的前端知识了 踏入 2025 年,满心激动与自豪,我成功闯进了《2024 年度 CSDN 博客之星总评选》的 TOP300。作为一名刚接触技术写作不久的萌新,这次能走到这…

VUE学习笔记(入门)5__vue指令v-html

v-html是用来解析字符串标签 示例 <!doctype html> <html lang"en"> <head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Document<…

Redis实训:社交关注关系存储任务

一、实验目的 1. 理解Redis的安装、配置及基本操作。 2. 掌握Redis的不同数据类型及相应操作方法。 3. 学习使用Java客户端连接Redis&#xff0c;并进行数据操作。 4. 实践使用Redis存储社交关注关系的功能。 二、实验环境准备 1. JAVA环境准备&#xff1a;确保Java…