单测

目录

单元测试

合格的单元测试

单测干什么

单测编写规范

单测覆盖粒度

单测执行策略

如何写好单元测试


单元测试

指对软件中的最小可测试单元进行检查和验证,对于面向对象编程,最小单元就是方法,包括基类(超类)/抽象类/派生类(子类)中的方法

合格的单元测试

1.测试的是一个代码单元内部的逻辑,而不是各模块之间的交互

2.独立,不需要外部环境即可测试代码,可以随时随地执行

3.要高效,可快速执行

4.要可回归,可以重复执行

单测干什么

1.可更好地保证代码符合预期行为

2.单元测试让我们更早得到反馈,提前发现问题

3.单元测试是重构的基础,验证重构是否可靠

4.应用于持续继承流程,对每次代码提交做回归测试

5.对程序结构要求更高,会让程序的结构更合理

6.编写易测试的代码需要更高的设计水平,会提高程序员的代码设计能力

单测编写规范

1.测试类命名

测试类应该放在src/test/java目录下,与源码目录隔离,测试类包名最好与源码相对应,创建测试类名需在源码类后加上后缀Test或TestCase,一般选择前者,

eg:源文件TSettleAdminServiceImpl.java,测试类TSettleAdminServiceImplTest.java,注意,新建测试文件,右键类名-->Generate-->Test-->选择方法

2.测试方法命名

每个测试方法都要在源文件方法的基础上,加前缀test,eg,源文件方法名称inquireMerchantTheNewestSettlePeriodBatch,测试方法名称testInquireMerchantByCustomerAndSettlePeriod

3.测试资源

测试资源文件都需要存放在src/test/resources目录下,配置文件独立配置一套作为测试所用,和源码资源文件隔离开,最好不要引用源资源文件

单测覆盖粒度

1.通用的业务组件或工具类

2.内外部接口

3.包含重要逻辑的service

4.不包括自动生成的代码部分

单测执行策略

1.项目排期一定要预留单测时间

估计开发工作量使,应该结合自身的能力并留出单元测试的时间,eg,纯开发工作的人天为N,加上UT则至少需要2N时间

2.尽早进行单元测试,边写功能,边写测试

3.周期性对代码进行评审,不断补充需要进行单测的代码

4.对于新增加的功能和修改的功能要进行完善单元测试

5.对于新发现的bug,也应增加相应的单元测试

如何写好单元测试

1.趁早:时机-接入越早越好

根据UT开始时间来分:测试驱动开发TDD,边测试边开发,开发完再测试,对UT比较熟悉的人员建议采用TDD:

面向测试的设计可以更好地分离关注点;测试越早越能尽早发现缺陷;可以把自己作为使用者二非仅仅是实现者,可改善接口

2.覆盖:单测的内容-场景考虑要全面

验证接口的入参和结果;验证程序边界条件;验证程序异常情况;验证程序执行路径

3.独立:目标与环境的隔离-体轻跑得快

可通过Mock实现测试目标与环境的隔离

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章