<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Unittest on Tony Bai</title><link>https://tonybai.com/tags/unittest/</link><description>Recent content in Unittest on Tony Bai</description><generator>Hugo</generator><language>zh-cn</language><copyright>2004-2026 Tony Bai. 版权所有.</copyright><lastBuildDate>Wed, 03 Jun 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://tonybai.com/tags/unittest/index.xml" rel="self" type="application/rss+xml"/><item><title>Go 生态17年大浪淘沙：2026年最值得引入的10个“神仙级”QoL工具包</title><link>https://tonybai.com/2026/06/03/10-god-tier-go-qol-libraries-to-use-in-2026/</link><pubDate>Wed, 03 Jun 2026 00:00:00 +0800</pubDate><guid>https://tonybai.com/2026/06/03/10-god-tier-go-qol-libraries-to-use-in-2026/</guid><description>本文永久链接 – https://tonybai.com/2026/06/03/10-god-tier-go-qol-libraries-to-use-in-2026 大家好，我是Tony Bai。 在软件工程中，有一个词叫 **QoL（Quality of Life，生产体验/开发幸福感）**。 Go语言（Golang）凭借极简的语法、强悍的并发能力和超快的编译速度，成为了现代后端和云原生的绝对...</description></item><item><title>“为什么很多工程师还在无视 AI 编程？”—— 这里的答案，或许决定了你三年后的身价</title><link>https://tonybai.com/2025/12/29/why-many-software-engineers-still-ignore-ai-programming/</link><pubDate>Mon, 29 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/29/why-many-software-engineers-still-ignore-ai-programming/</guid><description>本文永久链接 – https://tonybai.com/2025/12/29/why-many-software-engineers-still-ignore-ai-programming 大家好，我是Tony Bai。 &amp;gt; “我注意到一件让我非常惊讶的事：似乎大多数软件工程师并没有充分利用（甚至根本不用）像 Claude Code、Cursor 或 GitHub Copilot 这样的 AI ...</description></item><item><title>跨越20年的对话：从 Eiffel 的“契约”到 Go 的“接口”</title><link>https://tonybai.com/2025/12/13/from-eiffel-contract-to-go-interface/</link><pubDate>Sat, 13 Dec 2025 00:00:00 +0800</pubDate><guid>https://tonybai.com/2025/12/13/from-eiffel-contract-to-go-interface/</guid><description>本文永久链接 – https://tonybai.com/2025/12/13/from-eiffel-contract-to-go-interface 大家好，我是Tony Bai。 20年前，当我第一次翻开 Bertrand Meyer 的那本巨著**《面向对象软件构造》(Object-Oriented Software Construction)** 时，一种醍醐灌顶的感觉油然而生。书中那个...</description></item><item><title>Go测试的20个实用建议</title><link>https://tonybai.com/2024/01/01/go-testing-by-example/</link><pubDate>Mon, 01 Jan 2024 00:00:00 +0800</pubDate><guid>https://tonybai.com/2024/01/01/go-testing-by-example/</guid><description>本文永久链接 – https://tonybai.com/2024/01/01/go-testing-by-example 2023年11月初，Go语言技术负责人Russ Cox在GopherCon Australia 2023大会上进行了题为“Go Testing By Example”的演讲： 12月初Russ Cox重新录制了该演讲内容的视频，并在个人网站上放了出来。这个演讲视频是关于如何编...</description></item><item><title>Go语言gRPC服务Handler单元测试详解</title><link>https://tonybai.com/2023/11/25/grpc-handler-unit-testing-in-go/</link><pubDate>Sat, 25 Nov 2023 00:00:00 +0800</pubDate><guid>https://tonybai.com/2023/11/25/grpc-handler-unit-testing-in-go/</guid><description>本文永久链接 – https://tonybai.com/2023/11/25/grpc-handler-unit-testing-in-go 在云原生时代和微服务架构背景下，HTTP和RPC协议成为服务间通信和与客户端交互的两种主要方式。对于Go语言而言，标准库提供了net/http/httptest包，为开发人员提供了便捷的方式来构建服务端HTTP Handler单元测试的测试脚手架代码，而无...</description></item><item><title>Go 1.13中值得关注的几个变化</title><link>https://tonybai.com/2019/10/27/some-changes-in-go-1-13/</link><pubDate>Sun, 27 Oct 2019 00:00:00 +0800</pubDate><guid>https://tonybai.com/2019/10/27/some-changes-in-go-1-13/</guid><description>2019年对于Go语言来说也是一个重要的年份，因为在2019年的11月10日，Go即将迎来其开源10周年的纪念日。在这个重要日子的前夕，在GopherCon 2019大会后，Go项目组在2019.9.4日发布了Go 1.13版本。 这是自2017年GopherCon大会上Russ Cox做“Toward Go 2″主题演讲以来Go项目发布的第四个版本（前三个分别是：go 1.10、go 1.11和...</description></item><item><title>写Go代码时遇到的那些问题[第2期]</title><link>https://tonybai.com/2018/01/27/the-problems-i-encountered-when-writing-go-code-issue-2nd/</link><pubDate>Sat, 27 Jan 2018 00:00:00 +0800</pubDate><guid>https://tonybai.com/2018/01/27/the-problems-i-encountered-when-writing-go-code-issue-2nd/</guid><description>第1期的“写Go代码时遇到的那些问题”一经发布后得到了很多Gopher的支持和赞赏，这也是我继续写下去的动力！不过这里依然要强调的是这一系列文章反映的是笔者在实践中对代码编写的认知以及代码的演化过程。这里的代码也许只是“中间阶段”，并不是什么最优的结果，我记录的只是对问题、对代码的一个思考历程。不过，十分欢迎交流与批评指正。 一、dep的日常操作 ---------- 虽然dep在国内使用依然有i...</description></item><item><title>Golang测试技术</title><link>https://tonybai.com/2014/10/22/golang-testing-techniques/</link><pubDate>Wed, 22 Oct 2014 00:00:00 +0800</pubDate><guid>https://tonybai.com/2014/10/22/golang-testing-techniques/</guid><description>本篇文章内容来源于Golang核心开发组成员Andrew Gerrand在Google I/O 2014的一次主题分享“Testing Techniques”，即介绍使用Golang开发 时会使用到的测试技术（主要针对**单元测试**），包括基本技术、高级技术（并发测试、mock/fake、竞争条件测试、并发测试、内/外部测 试、vet工具等）等，感觉总结的很全面，这里整理记录下来，希望能给大家带...</description></item><item><title>代码是怎么腐化的</title><link>https://tonybai.com/2013/11/12/how-code-corrupt/</link><pubDate>Tue, 12 Nov 2013 00:00:00 +0800</pubDate><guid>https://tonybai.com/2013/11/12/how-code-corrupt/</guid><description>_新三年，旧三年，修修补补又三年。                                                              — 中国俗语。_ 上面的这句俗语用来形容很多遗留软件系统(legacy software system)的现状是再合适不过了。 今天下午做了一下午的代码评审，对象是一个运行了7年的遗留系统。会上除了几处明显的代码逻辑错误我发言指了出来外，涉及...</description></item><item><title>lcut 0.3.0版本发布</title><link>https://tonybai.com/2012/04/10/lcut-0-3-0-release/</link><pubDate>Tue, 10 Apr 2012 00:00:00 +0800</pubDate><guid>https://tonybai.com/2012/04/10/lcut-0-3-0-release/</guid><description>lcut单元测试框架在我的项目中应用已经有一段时间了，项目组的同事对lcut的使用也是越来越熟悉，这不今天一位同事还提出了一个新需求，需求大致是这样的。 在实际项目中，经常遇到这类情况： int bar(…) { int ret; ret = foo(…); /\* assert ret \*/ … ret = foo(…); /\* assert ret \*/ … ret = foo(…); ...</description></item><item><title>lcut增加对mock的支持</title><link>https://tonybai.com/2010/10/29/lcut-add-mock-support/</link><pubDate>Fri, 29 Oct 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/10/29/lcut-add-mock-support/</guid><description>记得恰好是在一个月前的今天，我发布了lcut(轻量级C语言单元测试框架)0.1.0版本 。由于发布仓促，文档没能及时跟上。在stackoverflow的一个关于单元测试的帖子 上，一位叫Craig McQueen的朋友也给出了建议：&amp;#34;Some documentation would be helpful. Project background and goals, a features list,...</description></item><item><title>从mock malloc说起</title><link>https://tonybai.com/2010/10/11/start-with-mock-malloc/</link><pubDate>Mon, 11 Oct 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/10/11/start-with-mock-malloc/</guid><description>上午对一段代码进行单元测试，由于需要用到mock，所以选择使用cmockery 作为Unit Testing框架(lcut还未提供mock功能)。测试代码里需要mock malloc以模拟分配内存失败的异常情况。 编写一个用例后，Build，提示出错：multiple definition of \`malloc&amp;#39;。经检查发现Makefile中定义mock malloc的那个目标文件(.o文件)居...</description></item><item><title>发布一款轻量级C语言单元测试框架</title><link>https://tonybai.com/2010/09/30/opensource-a-lightweight-c-unit-test-framework/</link><pubDate>Thu, 30 Sep 2010 00:00:00 +0800</pubDate><guid>https://tonybai.com/2010/09/30/opensource-a-lightweight-c-unit-test-framework/</guid><description>基于各种xUnit框架的单元测试早已不是什么新鲜玩意儿，不过在&amp;#34;古老&amp;#34;的C语言领域，还尚未有哪种框架可以成为“寡头”。 记得2005年末的时候，初出茅庐的我吸取xUnit的设计思想在业余时间编写了一个轻量级的C单元测试框架lcut(Lightweight C Unit Test framework)，当时还写了一篇文章《C单元测试包设计与实现》记录了最初的设计和实现思路。本打算将这个小工具在部门内...</description></item><item><title>有关单元测试的“只言片语”</title><link>https://tonybai.com/2009/04/08/only-a-word-or-two-about-unit-test/</link><pubDate>Wed, 08 Apr 2009 00:00:00 +0800</pubDate><guid>https://tonybai.com/2009/04/08/only-a-word-or-two-about-unit-test/</guid><description>如发现本站页面被黑，比如：挂载广告、挖矿等恶意代码，请朋友们及时联系我。十分感谢！ 商务合作请联系bigwhite.cn AT aliyun.com 欢迎使用邮件订阅我的博客 输入邮箱订阅本站，只要有新文章发布，就会第一时间发送邮件通知你哦！ 名字： 邮箱: 这里是 Tony Bai的个人Blog，欢迎访问、订阅和留言！ 订阅Feed请点击上面图片。 如果您觉得这里的文章对您有帮助，请扫描上方二维...</description></item><item><title>C单元测试之Mock Test篇</title><link>https://tonybai.com/2008/04/12/mock-test-in-c-unit-test/</link><pubDate>Sat, 12 Apr 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/04/12/mock-test-in-c-unit-test/</guid><description>曾经在多篇blog中报怨过：用C语言写业务逻辑实在是让人身心忐忑不安，再加之C语言自有的&amp;#34;特点&amp;#34;，让其与&amp;#34;单元测试&amp;#34;始终若即若离，曾经尝试过写了一个轻量级C Unit Testing lib，至少目前我依旧在用，但多用在编写独立算法以及底层库的场合。业务层少有使用。业务层多是遗留系统，当初前辈们设计时对可测性考虑不够周全，导致现在无法很好的将各个部分独立抽出进行测试，虽然我们也在做着类似&amp;#34;重构&amp;#34;的...</description></item><item><title>面对'破窗户'的无奈</title><link>https://tonybai.com/2008/03/28/the-helplessness-to-face-the-broken-window/</link><pubDate>Fri, 28 Mar 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/03/28/the-helplessness-to-face-the-broken-window/</guid><description>每天早晨都是坐公司的班车上班的，从家到公司大约需要40分钟，这段时间不短也不长。为了打发时间，也曾经想过要充分利用这段时间，我选择过听音乐、看书。但音乐听时间长了就听烦了；在车上看书时间长了还有些头晕，所以多数时间我还是选择&amp;#34;思考&amp;#34;。&amp;#34;思考&amp;#34;的同时，眼睛也一直在&amp;#34;欣赏&amp;#34;车窗外的风景。今天窗外一处新楼盘门市的两个破碎的窗户让我的&amp;#34;思考&amp;#34;有了方向。 建筑物上的几扇&amp;#34;破窗户&amp;#34;，很多人即使注意了，也会不以...</description></item><item><title>推进项目改进，难!</title><link>https://tonybai.com/2008/01/22/difficult-to-reform-in-current-project/</link><pubDate>Tue, 22 Jan 2008 00:00:00 +0800</pubDate><guid>https://tonybai.com/2008/01/22/difficult-to-reform-in-current-project/</guid><description>自从去年年初搬到新办公室后，各个项目组都分到了各个独立的空间了，平时&amp;#39;抬头不见低头见&amp;#39;的情形减少了，随意拉把椅子坐下来谈技术的情形也减少了，随之而来的是项目组&amp;#39;各自为战&amp;#39;，经过近一年的发展，各个项目组在局部的发展上已经出现差异了。 在现在带的这个项目之前，曾经有意识的去了解了一下其他组的技术发展情况，主要是针对Java开发这块。了解的结果让我意识到我们组的Java开发已经&amp;#39;落后&amp;#39;了。其实我们组的J...</description></item><item><title>单元测试进行曲</title><link>https://tonybai.com/2006/05/12/the-march-of-unit-test/</link><pubDate>Fri, 12 May 2006 00:00:00 +0800</pubDate><guid>https://tonybai.com/2006/05/12/the-march-of-unit-test/</guid><description>又是老生常谈-&amp;#39;单元测试&amp;#39;，说实话自己在单元测试上是&amp;#39;语言上的巨人，行动上的矮子&amp;#39;，属于那种说的比做的多的人^\_^。不过也不能说什么也没做。记得去年年末的时候自己还设计并实现过一个简单的&amp;#39;C语言单元测试包&amp;#39;呢^\_^，至今这个包仍然还在使用呢。不过大多数的单元测试都不像想象中那样简单，我们在介绍单元测试的时候，大多拿Add、Sub等作例子，这样当然有好处，简单易懂。其实学习单元测试初期关键是学习...</description></item><item><title>C单元测试包设计与实现</title><link>https://tonybai.com/2005/11/08/the-design-and-implementation-of-c-unittest-framework/</link><pubDate>Tue, 08 Nov 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/11/08/the-design-and-implementation-of-c-unittest-framework/</guid><description>在Java、C++和C#等高级语言的单元测试正进行的如火如荼的时候，C好像做了看客，冷清的躲在了一个不起眼的角落里。C并不是没有单元测试工具，像Check和CUnit这样的工具也很有名气，只是和大名鼎鼎的JUnit比起来，还是显得有些英雄气短。很多大型的C项目，如APR等都没有使用像Check、CUnit这样通用的单元测试框架，而是另起炉灶自己编写。其实编写一个仅能满足单个项目需要的C单元测试工具...</description></item><item><title>CppUnit入门实践-Tony与Alex的对话系列</title><link>https://tonybai.com/2005/05/30/tony-alex-dialog-on-cppunit-introduction/</link><pubDate>Mon, 30 May 2005 00:00:00 +0800</pubDate><guid>https://tonybai.com/2005/05/30/tony-alex-dialog-on-cppunit-introduction/</guid><description>Tony : Hi Alex ! you just looks like drowing in your project. what is up? Alex : 我们的项目要求引入单元测试，but i&amp;#39;ve no experience in unit test. Tony : i think cppunit is your best choice. Alex : 是的，我刚从网上把它down了下来...</description></item><item><title>再谈Mock Object</title><link>https://tonybai.com/2004/12/28/talk-about-mock-object-again/</link><pubDate>Tue, 28 Dec 2004 00:00:00 +0800</pubDate><guid>https://tonybai.com/2004/12/28/talk-about-mock-object-again/</guid><description>发现静寂的夜能让我的思维加快。 用Mock Object进行Unit Test已经一周多了，发现以前对Mock Object还是很肤浅，即使是现在我也不敢说我对Mock Object的理解就一定正确。 这篇blog假设你已经熟悉JUnit、了解Mock和TDD。 如果你是直接开始使用JMock 、Easy Mock或者是MockMaker等Mock Object框架的，我建议你简单了解一下Mock...</description></item></channel></rss>