小结
Posted webwei2017
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小结相关的知识,希望对你有一定的参考价值。
重复
字面量重复;提取到局部变量
结构重复;提取到方法
语义重复,即同一功能的不同实现;转换为结构重复后提取到方法
条件逻辑
一个测试中不应出现条件逻辑,若非常必要,则将逻辑处理提取到辅助方法中。
脆弱的测试
依赖时间、随机数、多线程的测试;规避(依赖其他确定的对象),控制(使用mock模拟),隔离(提取到专门的测试中集中处理)
残缺的文件路径
文件路径不可使用绝对路径,否则跨平台会测试失败,System类方法获取到的路径同样是绝对路径;使用基于项目的相对路径“./***”、getClass().getResource("****").getFile()获取其文件路径,或使用流代替文件。
永久的临时文件
多个测试涉及到临时文件的使用时会共享文件,所有初始化时需要使用File.delete()保证不留下物理文件,否则会造成测试的依赖性导致测试不独立。(使用 I/O 同时会显著增加测试的时间)
沉睡的蜗牛
涉及线程的测试中,Thread.sleep()会显著增加测试的时间,并且无法确定线程何时结束;使用java.util.concurrent中的同步对象来代替sleep.
像素完美
测试内容的抽象层次要和断言的抽象层次一致,细节交由辅助函数处理
参数化混乱
新工具用的不好不如不用
方法间的内聚
高内聚理想状态:类中每个字段被每个方法使用;将符合此状态的类和字段提取到新类,被所有方法用到的字段提取到基类或新类进行继承或组合。
以上是关于小结的主要内容,如果未能解决你的问题,请参考以下文章