单元测试系列之三:JUnit单元测试规范

更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢!

单元测试系列之三:JUnit单元测试规范

原文链接:http://www.cnblogs.com/zishi/p/6762032.html

Junit测试代码编写命名规范

测试类的命名定义规范

Junit自动生成测试类的命名如下:被测试的业务+Test、被测试的接口+Test、被测试的类+Test
类的名字必须由大写字母开头而单词中的其他字母均为小写;如果类名称由多个单词组成,则每个单词的首字母均应为大写,如TestMobileBind。如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,如:XMLExample。
比如你需要测试业务MobileBind ,那么它的测试类的命名就是TestMobileBind
比如你需要测试接口GetMobileBind ,那么的测试类的命名就是TestGetMobileBind
比如你需要测试类SetMobileBind.class,那么他的测试类的命名就是TestSetMobileBind

测试用例的命名定义规范

测试用例的命名规则是:test+用例操作。
单词的约定与测试类命名相同。如:testSetMobileBind
比如要测试的用例是“数据库用户信息不存在时,获取Mobile绑定消息”,那么它的测试用例名称就是testSetMobileBind

测试程序的包名定义规范

测试程序包的命名规则是:com.test.skymobi.项目名;测试公共类包的命名规则是:com.test.skymobi.common
java包的名称都是由小写字母组成。
测试项目,比如被测试的项目是skyups,那么测试类的包名就是com.test.skymobi.skyups。
测试开发包,比如被测试类的包名是com.skymobi.util,那么测试类的包名就是com.test.skymobi.util。

变量的命名规范

测试程序的变量名均采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写
例如:MaxValue
变量名不应以下划线或美元符号开头,尽管这在语法上是允许的。
变量名应简短且富于描述。变量名的选用应该易于记忆,即,能够指出其用途。尽量避免单个字符的变量名,除非是一次性的临时变量。

常量的命名规范

测试程序的常量名应该都使用大写字母,并且指出该常量完整含义。如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词。
例如:MAX_VALUE

选择测试粒度的原则

被测试类中所有public、protected方法都要测到
对于简单的set和get方法没有必要做测试

Junit关于编写代码的最佳实践

减少依赖关系
创建简单的构造函数
遵循最少知识原则(迪米特法则 Law of Demeter)
避免隐藏的依赖关系与全局状态
谨慎使用单例模式(singleton)
优先使用通用方法
组合优先于继承
多态优先于条件语句

本规范未说明的其它命名规范请参照《JAVA语言编码规范》(ENO-W063-JAVA Coding Rule.doc)

附录:参考文档一览
Digester文档                                 http://jakarta.apache.org/commons/digester/
JAVA语言编码规范                          ENO-W063-JAVA Coding Rule.doc
JUnit官方网站                                http://www.junit.org/
《Junit实战》(第2版)人民邮电出版社

作者原创技术文章,转载请注明出处

其他推荐相关阅读:

单元测试系列之一:如何使用JUnit、JaCoCo和EclEmma提高单元测试覆盖率

测试系列之二:Mock工具Jmockit实战

单元测试系列之三:JUnit单元测试规范

单元测试系列之四:Sonar平台中项目主要指标以及代码坏味道详解

单元测试系列之五:Mock工具之Mockito实战

单元测试系列之六:JUnit5 技术前瞻

单元测试系列之七:Sonar 数据库表关系整理一(rule相关)

单元测试系列之八:Sonar 数据库表关系整理一(续)

单元测试系列之九:Sonar 常用代码规则整理(一)

单元测试系列之十:Sonar 常用代码规则整理(二)

单元测试系列之十一:Jmockit之mock特性详解

上一篇:BZOJ3681: Arietta


下一篇:npm安装报错npm ERR! Refusing to install package with name "xxxx" under a packagexxxx