JUnit最佳实践
来源:互联网 发布:推荐几款好用的软件 编辑:程序博客网 时间:2024/05/21 05:59
完整版见https://jadyer.github.io/2010/11/17/junit-demo/
目录【可点击浏览】
1..JUnit4.x与JUnit3.8的明显不同
2..资源初始化
3..用于批量运行的测试套件
4..JUnit中关于测试失败的两种情况
5..测试类的存放
6..测试类的命名
7..测试方法的细节
8..测试代码的细节
JUnit4.x与JUnit3.8的明显不同
JUnit4.x JUnit3.8 无 extends TestCase@Before void setUp() @After void tearDown()@Test void testXxx()@BeforeClass 无 @AfterClass 无 @SuiteClasses static Test suite()
资源初始化
待测试对象及辅助对象在@Before 中初始化,全局资源可以在@BeforeClass中初始化
全局资源通常启动缓慢,如数据库、Web服务器 ,使之仅初始化一次,可加快测试速度
用于批量运行的测试套件
在一个大的项目中,会针对不同包中的源文件提供不同的位于不同包中的测试类
这时最好在每个包中都提供一个批量执行该包中所有测试类的Suite测试套件类
最后再提供一个包含了每个包中的Suite测试套件类的总的测试套件类
但要保证测试套件之间没有循环包含关系 ,否则就会出现无尽的循环
JUnit将测试失败分为两种情况:Failure和Error
Failure 一般由单元测试使用的断言方法判断失败引起的,它表示在测试点发现了问题
Error 则是由代码异常引起的,这是测试目的之外的发现
Error 可能产生于测试代码本身的错误,也可能是被测试代码中的一个隐藏的BUG
测试类的存放
单元测试是给开发人员使用的。而开发人员使用测试,是为了保证代码的质量
最终的客户不需要单元测试,交付产品时,不需要把测试的代码提交给客户
因此不能把测试类放到源代码的包里面,可以在项目中New 一个Source Folder
然后在New 一个Package,然后我们让Package的名字和src的包名一致
就是说将源代码跟测试代码放在不同的目录下,但它们的包是相同的
好处是,它们编译好的class都在相同目录下,所以无需引用即可访问src的类
测试类的命名
假设源代码的类名是Calculator ,那么测试代码的类名就叫做CalculatorTest
见名知意,让人一看就知道CalculatorTest.java是用来测试Calculator.java的
测试方法的细节
JUnit用到了反射,它会执行测试类中以test开头的方法,故方法名要以test开头
test后可以跟任何名字,假设测试add()方法 ,为了见名知意,测试方法为testAdd()
应当为需要测试的方法编写多个测试方法,每个测试方法各有侧重
并且测试方法要覆盖所有可能抛出异常的情况
测试代码的细节
测试代码必须简单到能直接看清测试逻辑,即决不能对测试代码再进行测试
不能为适应测试而修改源代码 ,即决不能维护两份源代码
应当一份用于产品,一份用于测试
注意 :不要与“编写测试能改进代码”相混淆
- JUnit最佳实践
- JUnit最佳实践
- JUnit最佳实践
- JUnit最佳实践
- JUnit最佳实践
- JUnit 最佳实践
- JUnit 最佳实践
- JUnit最佳实践
- junit最佳实践
- Junit 最佳实践
- JUnit最佳实践
- 使用Junit的最佳实践
- junit实践
- JUnit实践
- JUnit最佳实现
- 最佳实践
- 最佳实践
- 最佳实践
- php导出pdf网站
- 让你瞬间清醒的33条感悟
- php导出pdf网站2
- php导出pdf网站3
- Microsoft JScript 运行时错误: 缺少对象,原因分析
- JUnit最佳实践
- Oracle 11gR2 RAC ORA-00845 MEMORY_TARGET not supported on this system 解决方法
- 推荐几本JAVA的书
- servlet初步
- Hardware Tour
- C语言中sizeof的用法
- 一个关于SVM的说明
- extJs+JSON 动态树
- 我的电脑学习历程.第五章.再见了,BASIC