谈谈单元测试的五个准则
单元测试在整个开发中,是很重要的。
但是网上大部分关于单元测试的都是如何在某一平台,如何使用某种框架,而关于单元测试的准则或者方法论还是比较少的,这里谈谈单元测试的五个准则。
快
单元测试是要被频繁运行的,无论是重构代码,或者只是简单低修改个变量名,都应该运行一遍单元测试,如果单元测试运行得很慢,那程序员也不会想要频繁运行它,这样可能就会在代码中留下隐患。
独立
单元测试要拥有独立性,也就是各个测试之间要相互独立,不得有相互依赖条件或者执行次序,如果单元测试之间相互依赖,出现了问题,要找到源头就会很困难。
可重复
无论运行多少遍,单元测试结果应该都是一样的,如果单元测试依赖于不可控的外部条件,就应该全部mock掉,单元测试应该在任何环境下都可以通过。
自验证
不应该靠肉眼来验证测试结果的正确与否,正确的做法是应该让程序来判断最终的结果,比如使用Junit中的assertEquals。
及时
最理想的做法是在写下业务代码之前就写好了测试,其次则是完成一个功能后写一个测试,如果无法保证在业务代码之前写单元测试,也应该保证单元测试要紧跟在业务代码之后。