news 2026/7/21 22:57:16

19、测试驱动编码:从思考到实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
19、测试驱动编码:从思考到实践

测试驱动编码:从思考到实践

测试的核心并非找错

在如今这个时代,开发者们大多已意识到编写测试的重要性,但对于测试的真正意义,仍存在误解。很多开发者认为编写测试是为了确保代码能正常运行,然而这种观点并不准确。实际上,测试的主要益处并非在运行测试时体现,而是在思考和编写测试的过程中。

思考测试的价值

假设周一早上,你要编写一段代码,用于从数据库中查询每周观看超过 10 个视频的用户列表。你打开编辑器,开始编写查询函数:

def return_avid_viewers do # ... hmmm ... end

此时,你并不能确定这样做是否正确。但通过思考测试,情况会有所不同。

首先,想象函数编写完成后如何进行测试。你需要使用测试数据,这意味着最好在自己能控制的数据库中操作。为了便于测试,应将数据库实例作为参数传入函数,而非使用全局数据库:

def return_avid_users(db) do

接着,考虑如何填充测试数据。需求是查询每周观看超过 10 个视频的用户,查看数据库表,发现“opened_video”和“completed_video”两个字段可能有用。但不确定需求具体指哪个字段,而业务联系人又不在,此时可以将字段名作为参数传入:

def return_avid_users(db, qualifying_field_name)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/20 15:20:50

语音合成在语音玩具中的应用:让玩具有自己的‘性格声音’

语音合成在语音玩具中的应用:让玩具有自己的‘性格声音’ 在智能硬件日益普及的今天,儿童语音玩具早已不再满足于“按键发声”的机械交互。家长们希望孩子手中的布偶不只是复读预设台词,而是能用“妈妈的声音”讲故事、以“超人语调”鼓励成长…

作者头像 李华
网站建设 2026/7/20 21:00:29

24、软件开发:按需交付与用户愉悦之道

软件开发:按需交付与用户愉悦之道 1. 按需交付的基础与工作组织 要实现持续开发,需要坚实的基础设施。开发应在版本控制系统的主干进行,而非分支,并利用特性开关等技术有选择地向用户推出测试特性。 当基础设施就绪后,需决定如何组织工作。初学者可采用 Scrum 进行项目…

作者头像 李华
网站建设 2026/7/20 20:17:19

21、Windows应用开发:数据共享、设置页与持久化处理

Windows应用开发:数据共享、设置页与持久化处理 1. 数据共享与设置页初始化 1.1 数据共享初始化 在应用开发中,数据共享功能的初始化十分重要。通过以下代码,我们可以实现数据共享源合约的初始化: shareClick();// Initialization of Share source contract var view …

作者头像 李华
网站建设 2026/7/18 3:53:45

26、利用Windows 8实现摄像头拍照与打印功能

利用Windows 8实现摄像头拍照与打印功能 1. 摄像头功能检查 在没有用户明确许可的情况下,代码不允许自由访问摄像头。为了让应用能够成功使用摄像头,必须先声明使用意图。操作步骤如下: - 双击项目中的清单文件。 - 在后续视图中选择“功能”选项卡。 对于即时拍照应用来…

作者头像 李华
网站建设 2026/7/8 5:22:09

GPT-SoVITS能否支持多人对话生成?多角色语音分离实验

GPT-SoVITS能否支持多人对话生成?多角色语音分离实验 在虚拟主播直播带货、AI剧本杀互动游戏、个性化有声书自动演播等新兴场景不断涌现的今天,用户对“会说话的AI”提出了更高要求:不仅要能说,还要能分饰多角、自然切换、音色逼真…

作者头像 李华
网站建设 2026/7/20 16:47:32

11、Drupal 开发:天气模块与内容管理详解

Drupal 开发:天气模块与内容管理详解 1. 天气模块开发背景与目标 在开发过程中,我们已通过调用网络服务展示了一个简单的天气信息块。但为了提升用户体验,我们还有更多工作要做。具体需求包括:设置温度显示单位(华氏度为默认,同时支持摄氏度、开尔文和兰金单位)、设定…

作者头像 李华