单元测试
聂14昊51
努力+耐心
展开
-
编写优秀的单元测试(六)编写可读的测试
在上一篇文章我们讲了如何编写一个测试,这一章我们讨论一下如何让我们的测试变得可读性高一点。什么代码不好读网上有一个段子,说程序员最烦做的两件事情,一个是写文档,一个是写注释。程序员最烦别人不做的两件事情,一个是不写文档,一个是不写注释。这里提到了程序开发里面的一个最基本的事实:读代码比写代码难。这也是我们经常在工作中重构的原因,因为我们经常觉得有看那些代码的时间,我都重写一遍了。说这些是...原创 2020-02-22 16:25:52 · 334 阅读 · 0 评论 -
编写优秀的单元测试(五)编写测试
编码约定当我们要写一个测试方法的时候,一个问题突然蹦入到我们的脑袋:写一个测试有什么固定的编码格式么?事实上,这个问题的标准很多,而我们这里推荐的是:准备 - 执行 - 断言(Arrange - Act - Assert)这个流程是:准备用于测试的对象 - 触发执行 - 对输出进行断言编写的测试颗粒度怎么写测试是个问题,写多少测试,也一直是个问题。这里我们给出一个建议:检查行为,而非实...原创 2020-02-22 15:38:51 · 232 阅读 · 0 评论 -
编写优秀的单元测试(四)测试替身
简介一说到测试替身,我们总会不由自主的想到mock,我们在上一章简单提了一下,测试替身是 桩(Stub) 伪造对象(fake)测试间谍(spy) 模拟对象(mock)的总称。而使用测试替身的根本目的是使用替身替换一个模块的真实协作者,以期隔离被测试对象。我们说,引入测试替身的根本原因就是:将测试代码和周围隔离开。下面我们先分别看一下几种类型的测试替身:测试替身的类型1:桩桩(Stub) ...原创 2020-02-11 22:46:18 · 1766 阅读 · 0 评论 -
编写优秀的单元测试(三)如何编写优秀的单元测试
定义首先,我们需要声明一点,对于好的定义,一千个人心中有一千个哈姆雷特。每个人对于好的定义不同,我们定义的“好”只是基于现有知识的,广义的“好”,知识是不断发展变化的,“好”的标准也不是一成不变的。那么,优秀的单元测试具备几个要素呢:测试代码的可读性和可维护性,研究证明,代码的可读性与缺陷密度密切相关代码在项目中或特定源码中的组织方式测试所检查的内容测试的可靠性和可重复性测试对于测...原创 2020-02-10 23:20:41 · 321 阅读 · 0 评论 -
编写优秀的单元测试(二)测试先行
介绍测试先行就是我们常说的测试驱动开发(TDD)测试先行的实践方式测试先行的实践方式是在接到一个新功能的时候,先写一个测试,这个测试一定会失败,然后编写代码使得测试成功,然后再写下一个测试,有点像是填坑的方式进行开发。传统的开发方式是:设计-开发-测试 如此往复测试先行的开发方式是:测试-代码-重构 如此往复下图指示了设计先行的开发方法:我们在实际开发中,通常会犯的两个错误就是:...原创 2020-02-10 16:16:14 · 1127 阅读 · 0 评论 -
编写优秀的单元测试(一)简介
写在前面相信当你看到这篇文章的时候,处境应该都差不多,或是随着敏捷开发的进行,需要了解单元测试,或是听人提及单元测试,想了解一下单元测试是何方神圣,或是对于单元测试一知半解,会写单元测试,又不会写单元测试。我们都带着满脑子的疑问,什么是单元测试?为什么需要单元测试?网上找教程写出了简单的单元测试,到项目中如何用?大牛为什么要这么写单元测试为什么不那么写单元测试?当年给新入职的校招生们讲软件设...原创 2020-02-09 18:50:36 · 497 阅读 · 0 评论