单元测试的学习(1)
无论看开源代码还是读网志博客,都少不了单元测试的身影。它的重要性无需我在此赘述,你是否已养成编写单元测试的习惯呢?
一直以来,我都想着写代码的时候顺带着单元测试,但从想法产生但现在,写的单元测试也屈指可数。
就自身而言,由于平时接触的项目较小,代码的质量可以通过反复的调试修改来保证,因而也就促成了不写单元测试的结果(毕竟还没尝到单元测试带来的乐果)。随着工作和学习的深入,看到的开源代码和网友的共享代码也越来越多,它们的共性在于都会附上相应得单元测试,这让我开始萌生些单元测试的冲动(也只是停留在想法层面上。具体实施的一次,还是由于调试模式下无法测试,才想到用单元测试来验证)。
后来随着所接触项目规模的扩充和功能的增加,代码质量越来越难以保障。于是,在老大的建议下开始正式学习单元测试,自己也就尝试开始编写一些单元测试。
首先遇到的问题是:什么时候要写单元测试,关于单元测试的要求又是什么?关于这个问题,我从代码中学到的是,每个方法都要有相应的单元测试,其次,为了保障方法逻辑的正确性和涵盖面,一个方法有时候需要写好几个单元测试。单元测试的要求就是尽可能的测试到代码逻辑的所有覆盖面(关于这块,需要补充测试方面的知识)。另外一个问题是,代码现行还是测试现行?如果从TDD角度,测试先行,代码随后,然后修改测试的逻辑,再重构代码让测试通过,之后不断重复这个过程。TDD的好处在于从测试用例的角度保证了代码逻辑的正确性。当然,代码先行也可以,只要测试覆盖到代码逻辑的所有面,就能在一定程度上保证代码的质量。这就是单元测试的意义所在。