标签:
我们都写过的某种测试
不要惊讶,你已经进行过某种程度的单元测试。你见过提交代码前不做测试的开发人员吗?
在传统测试中,开发人员使用一个图形用户界面触发要测试的类的某个行为,然后检验结果。
那什么是单元测试,什么不是单元测试呢?
往往说不想的,其实是因为还不会。因为不会,所以想一想就很麻烦,还不如手工测试呢。
我已经写好代码,然后还要去确认写好的逻辑,好多余
因为我们没有遵循正确的TDD实践,所以觉得不舒服和多余。
单元测试一旦通过,不会经常修改。一般有两大类经常修改情况:
是的,单元测试确实会增加编码的时间。但是从整个软件的交付时间比来说,有好的单元测试的时间会交付更快。一般有健全的单元测试,在测试阶段和维护阶段会花费更少的时间。我们在做的是一个完整的软件,所以时间应该算总的周期
另外一个原因,有可能是因为不熟练或者没有合适的工具,所以花了大量时间在重复的工作之上。
其实咱们一直在做不务正业的事。调试代码,给代码加注释,画流程图,上网解决问题等等。这些其实都是开发者的日常工作。所以单元测试也是!!
这里也有一篇文章,也比较有意思:为什么要进行烦人的单元测试?
那到底什么是单元测试呢?
一个单元测试是一段自动化的代码,这段代码调用被测试的。这段代码调用被测试的工作单元,之后对这个单元的单个最终结果的某些假设进行检验。单元测试几乎都是用单元测试框架编写的。单元测试容易编写,能快速运行。单元测试可可靠、可读,并且可维护。只要产品代码不发生变化,单元测试的结果是稳定的。
从调用系统的一个公共方法到产生一个测试可见的最终结果,其间这个系统发生的行为总称为一个工作单元。一个最终结果有三种形式
很多人把进行软件测试的行为和单元测试概念混为一谈。要澄清这个误解,你首先应该回顾自己以前写过的测试,问自己如下问题。
那到底什么是集成测试呢?
集成测试是对一个工作单元进行的测试,这个测试对被测试的工作单元没有完全的控制,并使用该单元的一个或者多个真实依赖物,何如时间、网络、数据库、线程或者随机数产生器等
总的来说,集成测试会使用真实依赖物,而单元测试则把测试单元和基依赖物隔离开,以保证单元测试结果高度稳定
并不是说集成测试不重要!单元测试和集成测试具有同等重要的地位,但是这两个测试应该彼此分开,以营造一种“绿色安全区”的感觉
上面说的是什么是单元测试。那么什么时候编写测试呢?很多人觉得为软件编写单元测试的最佳时机是软件编码完成以后,但是越来越多的人选择在产品代码编写之前写单元测试
。这种方法称为测试优先或测试驱动开发(Test-Driven Development, TDD)。
执行步骤:
即红-->绿-->重构
本文的概念大部分出自于《单元测试的艺术》,特此说明。因为书里的概念讲得是我想要的,比网上搜的其他资源要适合自己些。
更具体的概念可以翻阅《单元测试的艺术》。
标签:
原文地址:http://www.cnblogs.com/Leo_wl/p/4916929.html