`
幸福不灭
  • 浏览: 14996 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

编写单元测试的10条理由

 
阅读更多

1. 不要让客户发现难堪的bug。在bug进入产品生产环节前编写足够的测试场景来捕获它们。

2. 对于复杂的场景,快速测试它,不必在程序中手动地重现去它们。

3. 经常测试,在你离开的时候程序便不会出错。你不可能总能了解你所编写代码的各种可能情况,尤其最初的程序并不一定是由你编写的。

4. 尽早测试,就不需要编写一些不必要的代码,而可只关注关键部分。这可以使得代码库精简且易于维护。同样可以节约开发时间。

5. 同一代码不必两番调试。一旦你测试发现可能的bug后,你便可以快速地修正它。

6. 可以确保可读性。单元测试可使代码的意图易于理解。

7. 确保可维护性。进行单元测试可迫使你更好地实现封装功能,从而使代码易于维护而且方便增加新功能。

8. 重构时无需担心。运行测试可确保一切功能如预期实现。

9. 节省测试时间。你可以将整个CPU用来执行单元测试。

10. 更安全。对于增加一个新功能或者修改部分程序内核后你是否经常会感到担心呢?(进行单元测试后)这一切不再了。

11. 中奖:确切知道哪里出问题了。取代盲目的发现bug,测试可以告诉你问题及原因所在。举例:程序会告诉你什么时候cart中增加了一个条目而cart显示仍然是空的。它也会告诉你某个试图增加的条目失败了。

你是怎么看的呢?欢迎发表评论。
分享到:
评论

相关推荐

    对复杂的单元测试使用模拟对象

    对复杂的单元测试使用模拟对象软件测试如今,程序员比以往更多地认识到他们有责任创建编写较好的单元测试。无论一个开发人员是在进行测试驱动的开发(TDD)还是在编写代码后创造单元测试,有一点是十分明显的,那就是...

    积分java源码-money-profiling:使用JavaMoney和CurrencyAPI对ChronicleMap进行基准测试

    它还提供单元测试和基准测试来演示相关的 API:s 和输出分析结果; 最值得注意的是序列化和字节大小的时间成本。 JavaDoc 提供了 . 科技 - 构建工具。 - 单元测试运行程序。 - 基准赛跑者。 - 货币和货币 API。 - JSR...

    testing-class

    测验 首先测试 在更改任何代码之前,编写失败的自动测试。 来自极限编程(XP) ...单元测试提示 公共功能调用 对于查询功能->声明结果 对于命令功能->声明直接的公共副作用 私有函数调用 别管他们。 对其他模块/对

    gremlin-repl

    这个备用控制台的主要原因是允许为 gremlin-node 编写单元测试,这些单元测试只是带有控制台输入的文本文件,以及它们相应的预期输出脚本。 gremlindocs.com 上提供的大多数示例已被移植为此类测试。 生成的预期...

    gulp-htmlincluder:Gulp插件,用于彼此构建HTML文件。 专为涉及响应式单元测试的工作流程而设计

    我敢肯定,它的用途可以比最初打算的要广泛得多(并且可能会在某个时候进行名称更改,因为没有理由您不能将json文件包含在json文件中或执行其他操作。)用法安装npm install --save-dev gulp-htmlincluder样例...

    软件资料文档标准规格

    在项目开发过程中,应该按要求编写好十三种文档,文档编制要求具有针对性、精确性、清晰性、完整性、灵活性、可追溯性。  ◇ 可行性分析报告:说明该软件开发项目的实现在技术上、经济上和社会因素上的可行性,...

    cosmic::snake:实现功能核心和命令性外壳设计。 具有CQRS入口点的六角形体系结构。 领域设计参考DDD模式

    易于编写,运行和维护的单元测试中全面介绍将此隔离的域层映射到持久性存储最大限度地减少集成和端到端测试解耦并轻松抽象第三方的集成(遵守合理的SRP) 在事件驱动下解耦服务处理程序,这使我们能够迁移到无...

    代码语法错误分析工具pclint8.0

    使用PC-Lint在代码走读和单元测试之前进行检查,可以提前发现程序隐藏错误,提高代码质量,节省测试时间。并提供编码规则检查,规范软件人员的编码行为。 由于PC-LINT对于一般程序员来说可能比较陌生,有好多人安装...

    RandomForestPlusPlus:我的随机森林代码的 C++ 实现

    RandomForestPlusPlus 是我为机器学习竞赛( )构建的先前 .NET 项目的 C++ 端口。 它有效,但它的真正目的只是成为一个学习项目,并在我... BkpClassesTests - 为 BkpClasses 运行 Google Test 单元测试的可执行文件

    olap-in-memory:内存中的OLAP是Javascript中的内存中OLAP多维数据集的实现

    除了本自述文件中的文档外,在单元测试中还可以找到许多用法示例,这些示例涵盖了大多数功能。 项目背后的理由 记忆中的Olap被编写为的配套库,该工具是针对人道主义组织的全功能开源监视平台。 许多供应商已经...

    tXml:纯JavaScript的非常小且快速的xml解析器

    文本文件 用纯JavaScript编写的非常小且可能是最快的xml解析器。 该库易于使用: txml.... 单元测试涵盖了此代码100%。 this.code很小,非常适合浏览器,节点,云功能,边缘。 因此,有充分的理由尝试一下tXml.

    splat:使事情跨平台

    摔得痛 如今,某些类型的事情在跨平台的移动代码中基本上是不可能的,但是没有理由。 编写一个ViewModel来... 一种检测您是否处于单元测试运行器/设计模式的方法 跨平台日志记录框架 简单而灵活的服务位置 如何安装?

    刀片服务器总体设计方案.doc

    3 总体功能框图 以功能模块为单元用图形描述系统总体框架,并简要说明各部分的联系,简要说明划 分理由。 4 硬件单板联系图 以单板为模块给出系统联系图,简要说明与功能模块的对应关系,并简要说明单板划 分理由。...

    象棋游戏源码java-chess:用于定义和下棋变体的Java应用程序

    分离并添加单元测试。 请不要向master分支提交拉取请求。 如何贡献 当然,可能有其他方法可以执行其中许多步骤,但是如果您遇到困难,我们将帮助您解决这些问题 获取代码 安装和设置 当安装人员询问时选择非商业用途...

    单片机设计与KeilC编程.doc

    我曾经见过一个工程师,他所调试的程 序在运行时偶而会引起看门狗的复位动作,于是他干脆在每10ms 就中断一次的时钟中断程序中清看门狗。我相信他也知道使看门狗失去作用,可他却没 有不是去查明引起这个现象的真正...

    阿里巴巴编码规范 基础技能认证 考题分析(考题+答案).docx

    如何处理单元测试产生的数据,下列哪些说法是正确的?ABC A .测试数据入库时加特殊前缀标识。 B .测试数据使用独立的测试库。 C .自动回滚单元测试产生的脏数据。 D .无须区别,统一在业务代码中进行判断和...

    asp.net知识库

    不该用Generics实现Abstract Factory的理由 C#2.0-泛型 C#2.0-extern C#2.0-可空类型 C#2.0-分部类 C#2.0-迭代器 C#2.0 的新增功能学习 泛型的序列化问题 .NET 2.0 泛型在实际开发中的一次小应用 C#2.0 Singleton 的...

    软件工程-理论与实践(许家珆)习题答案

    ● 测试(发现并改正错误,分为模块测试、集成测试和系统联调三级); ● 运行维护(扩充功能、纠错等)。 习题二答案 一、 选择题 1. 需求分析的主要目的是(B C)。 A) 系统开发的具体方案 B) 进一步确定用户的...

    Linux多线程服务端编程:使用muduo C++网络库

    《Linux多线程服务端编程:使用muduo C++网络库》主要讲述采用现代C++在x86-64 Linux上编写多线程TCP网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即one loop per thread。...

Global site tag (gtag.js) - Google Analytics