惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
博客园_首页
J
Java Code Geeks
Jina AI
Jina AI
B
Blog RSS Feed
量子位
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
L
LangChain Blog
Microsoft Security Blog
Microsoft Security Blog
小众软件
小众软件
博客园 - 聂微东
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
Last Week in AI
Last Week in AI
MongoDB | Blog
MongoDB | Blog
I
InfoQ
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
爱范儿
爱范儿
Y
Y Combinator Blog
Vercel News
Vercel News
雷峰网
雷峰网

博客园 - 木乃伊人

MCP Server部署到云端服务器 MCP 开发 VS Code 搭建LangChain开发环境 VSCode Unable to import XXX 问题解决记录 大模型应用开发-聊天机器人-保存聊天记录 try-catch中的throw和throw ex的区别 Google Chrome 默认非安全端口列表 EF Core的预先加载、延迟加载、实体追踪 同步、异步、回调 软件设计原则 UML类图 Seq Serilog 多线程整理 Vuex和Pinia Vue3+TS+Vite+pinia 枚举 Vite创建Vue3项目 闭包 IdentitySrever4 ElasticSearch 前端防止重复提交案例
TDD
木乃伊人 · 2025-10-11 · via 博客园 - 木乃伊人

一、简介

       TDD(Test-Driven Development)测试驱动开发。是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。

二、扩展

       TDD之于代码测试,就和UML之于系统设计,Agile之于项目管理一样。其实都是在透支未来。相当于先下结论,再去实现,就是邪修做法,忘记了最重要的影响因素:软件项目中,需求是随时可变的

image

三、理论

       传统做法如下图,需求确认后,开发和测试并行,最后收尾。

image

TDD的做法是,把测试放到开发之前。然后用单元测试(unit test)把所有肯能出现的情况都测试一遍,相当于用测试代码将需求文档翻译一遍。之后的开发入场,就不再是以需求文档来引导,唯一的任务,就是写下能让这些测试通过的代码。

image

 四、总结

        TDD是一种比较极端的做法。他也有不好的地方,比如使用TDD来开发,相当于让具体代码的实现细节和测试过度耦合,会锁死代码的调整空间。可能后期会导致工程量过大,从而导致崩溃。