单元测试的一些基本概念
我们(程序员)多多少少都写过单元测试,有的可能几年前写的几行代码(比如我), 姑且也算写过吧,但是有些东西还是不是很清楚,比如什么是单元测试?怎么才算是好的单元测试?等等很多,查了些资料,总结一下。
1、什么是单元测试
单元测试是一段代码(通常是一个方法)调用另外一段代码,随后检验一些假设的正确性。如果假设的结果错了,单元擦拭注定会失败。一个单元指的是一个方法或函数。
2、好的单元测试具有哪些特性
- 自动的,可重复的
- 容易实现的
- 一旦写好,将来都可以使用
- 任何人都可以运行
- 单击一个按钮或输入一条命令就可以运行
- 能够快速的运行
3、什么是集成测试?
把两个或者多个相依赖的模块作为一个组进行测试。他运行多个集成在一起的代码单元,用来来确定软件中应该出现的一个活多个预期结果。
4、什么是逻辑代码?
逻辑代码是指任何一小段包含逻辑的代码,只要包含一个或者多个以下要素的就是逻辑代码:if、switch、 for、foreach、while等等任何其他类型的判断代码。(由于编程语言不同,关键字有可能不同)
5、什么是测试驱动开发(TDD)?
测试驱动开发即测试优先开发。传统的开发流程如下图所示
TDD的开发流程大致如下,它是螺旋性的,写单元测试、写实现代码、重构。然后写下一个。体现增量开发,每次一小步,每次都能提高质量或增加功能。
TDD开发其实就3步:首先写一个失败的测试,证明最终的产品缺少代码或功能;然后编写实现代码,满足测试的期望,使测试通过;最后是重构也可以继续写下个单元测试,所谓的重构是调整代码,使得代码可读性更强,消除冗余等。