文章目录
- 介绍
- Junit4版本常用注解
- 注意事项
- @Test使用方式
- @Before @After使用方式
- @BeforeClass @AfterClass使用方式
介绍
Junit是一个Java语言的单元测试框架,简单理解为可以用于取代java的(部分)main方法。Junit属于第三方工具,需要导入jar包后使用。
作用: 单独的运行某一个方法,在一定程度上取代main方法
Junit4版本常用注解
常用注解:
- @Test:单元测试,不需要被调用也可以执行该方法。
- @Before:修饰方法,该方法在每个测试方法执行前执行一次。
- @After:修饰方法,该方法会在每个测试方法执行后执行一次。
- @BeforeClass:修饰静态方法,该方法会在所有测试方法之前执行一次,而且只执行一次。
- @AfterClass:修饰静态方法,该方法会在所有测试方法之后执行一次,而且只执行一次。
注意事项
- Junit单元测试只能运行public修饰的,无返回值,无参数的方法。
- @Test注解不能放在静态方法上
- @Before,@After,@BeforeClass,@AfterClass修饰的方法不能单独执行,但会自动在@Test修饰的方法前后执行。
- @Before,@After:会在每一个@Test修饰的方法前后执行。
- @BeforeClass,@AfterClass:会在@Test修饰的方法前后执行,只执行一次。
@Test使用方式
@Test特点:单元测试,不需要被调用也可以执行该方法。
public class Junit4Demo {
@Test
public void method1(){
System.out.println("method1方法!");
}
}
运行方式:点击要运行方法左侧的箭头,选择Run method1() 即可运行当前方法。
要想运行多个测试方法:点击类哪一行左侧的箭头,选择Run Junit4Demo即可运行所有测试方法。
@Before @After使用方式
@Before特点 :修饰方法,该方法在每个测试方法执行前执行一次。
@After特点:修饰方法,该方法会在每个测试方法执行后执行一次。
public class Junit4Demo {
@Before
public void methodBefore(){
System.out.println("我在所有测试方法执行之前执行!");
}
@After
public void methodAfter(){
System.out.println("我在所有测试方法执行之后执行!");
}
@Test
public void method1(){
System.out.println("method1方法!");
}
@Test
public void method2(){
System.out.println("method2方法!");
}
}
运行结果:@Before注解作用的方法会在每一个测试方法执行前执行一次,而@After会在每一个测试方法执行后执行一次。
@BeforeClass @AfterClass使用方式
@BeforeClass特点:修饰静态方法,该方法会在所有测试方法之前执行一次,而且只执行一次。
@AfterClass特点:修饰静态方法,该方法会在所有测试方法之后执行一次,而且只执行一次
public class Junit4Demo {
@BeforeClass
public static void methodBeforeClass(){
System.out.println("methodBeforeClass修饰静态方法,只执行一次,在所有测试方法执行前!");
}
@AfterClass
public static void methodAfterClass(){
System.out.println("methodAfterClass修饰静态方法,只执行一次,在所有测试方法执行后!");
}
@Test
public void method1(){
System.out.println("method1方法!");
}
@Test
public void method2(){
System.out.println("method2方法!");
}
}
运行结果:@BeforeClass注解作用的方法会在所有测试方法执行前执行一次,只会执行一次; @AfterClass注解作用的方法会在所有测试方法执行后执行一次,只会执行一次。
使用场景:我们每次查询数据库前都需要加载数据源,创建连接,可以使用@Before注解,当我们每次查询完毕要对资源进行关闭操作,可以使用@After注解。