写在前面
此文是一个菜鸡对单元测试的探索,具备参考价值,不具备使用价值。
单元测试的意义
必要性:软件的持续集成、自动化部署必须依赖单元测试
单元测试可以保证代码的内在质量,减少产品上线的焦虑感
测试代码可作为可执行文档存在,且永不过时,不用想着改个代码跑去同步各种文档了
单元测试是在节省未来的时间。单元测试可以避免一些低级错误,比如有些单词拼写错误导致的bug,而这种Bug靠肉眼往往很难发现。
单元测试促使我们写出更优秀、更清晰、更通用的代码。团队合作中追求个性化的代码其实并没有什么意义,只能自己维护的代码本身就是个巨大的Bug。
如果你还想学重构这个牛X的技能,必须会写单元测试。
如果你不想在代码review时被人找出一些莫名其妙的错误,必须写单元测试
对于团队,如果你不能保证你的团队中都是神级高手,那么必须依赖单元测试来保证代码内在质量
最后,如果你想在“搬砖”这个领域混,嘴里不说点单元测试、重构之类的怎么耍帅装大佬。
单元测试的粒度
一般来讲是指:对单个函数进行独立测试。
不应该包括对外部资源的依赖,比如网络、数据库等
不应该包含对其他依赖的测试。对于测试来讲,清晰度比去除重复代码更重要
单元测试写什么
首先,你要有起码的判断力,如果没有就去培养
-
测试是一种保证代码内在质量的手段,而不是写代码是为了测试,切莫本末倒置。
-
有些东西必须测,有些东西可以不测,也有一些东西完全不需要测试。
其次,你要懂得思考你的软件做什么,应该怎么做。
- 需求定义了你的代码,所以写测试的时候要考虑这一点,测试代码可以体现需求和设计
- 最简单的逻辑:给一个输入,要得到期望的输出,如果没有得到就说明代码有问题。
再其次,单元测试一定要快速运行
- 所以不要放一些乱七八糟的东西在里面
最后
以上都是废话,原因只有一个:你的领导让你写单元测试,O__O
网友评论