博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JUnit单元测试中的setUpBeforeClass()、tearDownAfterClass()、setUp()、tearDown()方法小结
阅读量:7030 次
发布时间:2019-06-28

本文共 1586 字,大约阅读时间需要 5 分钟。

 

编写JUnit单元测试的时候,会用到 setUpBeforeClass()、tearDownAfterClass()、setUp()、tearDown()这四个方法,例如用 eclipse新建一个junit test case的时候,就会有如下图1的窗口让你去选择使用哪些方法(也可以不使用):

图1:选择使用哪些方法

上面这四个方法到底有什么用处,以及使用什么修饰符,看下面的这个例子就知道了:

 
import 
org.junit.After;
import 
org.junit.AfterClass;
import 
org.junit.Before;
import 
org.junit.BeforeClass;
import 
org.junit.Test;
 
public 
class 
UserEntityTest {
 
    
@BeforeClass
    
public 
static 
void 
setUpBeforeClass() 
throws 
Exception {
        
System.out.println(
"this is setUpBeforeClass..."
);
    
}
 
    
@AfterClass
    
public 
static 
void 
tearDownAfterClass() 
throws 
Exception {
        
System.out.println(
"this is tearDownAfterClass..."
);
    
}
 
    
@Before
    
public 
void 
setUp() 
throws 
Exception {
        
System.out.println(
"this is setUp..."
);
    
}
 
    
@After
    
public 
void 
tearDown() 
throws 
Exception {
        
System.out.println(
"this is tearDown..."
);
    
}
 
    
@Test
    
public 
void 
testGetUserId() {
        
System.out.println(
"this is testGetUserId..."
);
    
}
 
    
@Test
    
public 
void 
testGetUserName() {
        
System.out.println(
"this is testGetUserName..."
);
    
}
 
}
 

上面这段代码的运行结果如下:

 
this is setUpBeforeClass...
this is setUp...
this is testGetUserName...
this is tearDown...
this is setUp...
this is testGetUserId...
this is tearDown...
this is tearDownAfterClass.

看代码,再看结果,可以很明显的发现:

(1) 使用@BeforeClass修饰的setUpBeforeClass()方法,在类中所有的方法执行之前执行;那么,使用@AfterClass修饰的 tearDownAfterClass()方法则与之完全相反;可以看到这两个方法都被static修饰,在类加载以后,这两个方法就会被加载,并且只会 存在一份。

(2)使用@Before修饰的setUp()方法,在每一个@Test测试方法执行之前执行;那么,使用@After修饰的tearDown()方法则与之完全相反。

如果测试的程序使用jdbc连接数据库,那么setUpBeforeClass()方法中就可以写上初始化数据库连接的一些代码,tearDownAfterClass()方法中就可以写上关闭数据库连接的一些代码

转载于:https://www.cnblogs.com/zhengah/p/4798686.html

你可能感兴趣的文章
第六章——函数(inout参数与变异方法)
查看>>
掘金翻译计划月报 — 2018 年 2 月
查看>>
Android属性动画
查看>>
渐进式Express源码学习5-全副武装
查看>>
JVM难学?那是因为你没认真看完这篇文章
查看>>
python面试题(五)
查看>>
老司机 iOS 周报 #40 | 2018-10-22
查看>>
VirtualView iOS 模板加载功能实现详解
查看>>
这可能是最好的性能优化教程(二)
查看>>
被马化腾点赞的微信车票设计,背后有哪些故事?
查看>>
Spring理论基础-面向切面编程
查看>>
BloomFilter 原理,实现及优化
查看>>
PHP本地文件包含漏洞环境搭建与利用
查看>>
OGNL设计及使用不当造成的远程代码执行漏洞
查看>>
Vue-cli + express 构建的SPA Blog(采用前后端分离方案)
查看>>
ios中的多播委托
查看>>
Java基础-单例模式
查看>>
轻仿QQ音乐之音频歌词播放、锁屏歌词
查看>>
MongoDB 4.0 RC 版本强势登陆
查看>>
AliOS Things网络适配框架 - SAL
查看>>