Junit - 基础注解(@BeforeClass、@Before、@Test、@After、@AfterClass)

Junit4 注解提供了书写单元测试的基本功能。本章将介绍@BeforeClass,@AfterClass,@Before,@After,@Test 这几个基本注解。

@BeforeClass注解

被@BeforeClass注解的方法会是:
  • 只被执行一次
  • 运行junit测试类时第一个被执行的方法
这样的方法被用作执行计算代价很大的任务,如打开数据库连接。被@BeforeClass 注解的方法应该是静态的(即 static类型的)。

@AfterClass注解

被@AfterClass注解的方法应是:

  • 只被执行一次
  • 运行junit测试类是最后一个被执行的方法
该类型的方法被用作执行类似关闭数据库连接的任务。被@AfterClass 注解的方法应该是静态的(即 static类型的)。

@Before注解

被@Before 注解的方法应是:
  • junit测试类中的任意一个测试方法执行 前 都会执行此方法
该类型的方法可以被用来为测试方法初始化所需的资源。

@After注解

被@After注解的方法应是:
  • junit测试类中的任意一个测试方法执行后 都会执行此方法, 即使被@Test 或 @Before修饰的测试方法抛出异常
该类型的方法被用来关闭由@Before注解修饰的测试方法打开的资源。

@Test 注解

被@Test注解的测试方法包含了真正的测试代码,并且会被Junit应用为要测试的方法。@Test注解有两个可选的参数:
  • expected 表示此测试方法执行后应该抛出的异常,(值是异常名)
  • timeout 检测测试方法的执行时间

Junit 4 注解例子

Arithmetic.java,本例要用到的需要Junit进行单元测试的类:

package in.co.javatutorials;
 
public class Arithmetic {
 
    public int add(int i, int j) {
        return i + j;
    }
}

ArithmeticTest.java,Arithmetic.java的Junit单元测试类:

package in.co.javatutorials;
 
import static org.junit.Assert.assertEquals;
 
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
 
public class ArithmeticTest {
 
    @BeforeClass
    public static void setUpClass() {
        // one time setup method
        System.out.println("@BeforeClass - executed only one time and is first method to be executed");
    }
 
    @AfterClass
    public static void tearDownClass() {
        // one time tear down method
        System.out.println("@AfterClass - executed only one time and is last method to be executed");
    }
 
    @Before
    public void setUp() {
        // set up method executed before every test method
        System.out.println("@Before - executed before every test method");
    }
 
    @After
    public void tearDown() {
        // tear down method executed after every test method
        System.out.println("@After - executed after every test method");
    }
 
    @Test
    public void testAdd() {
        Arithmetic arithmetic = new Arithmetic();
        int actualResult = arithmetic.add(3, 4);
        int expectedResult = 7;
        assertEquals(expectedResult, actualResult);
        System.out.println("@Test - defines test method");
    }
}

样例结果输出

本例在Eclipse Junit窗口的输出结果如下:

样例日志输出:

@BeforeClass - executed only one time and is first method to be executed
@Before - executed before every test method
@Test - defines test method
@After - executed after every test method
@AfterClass - executed only one time and is last method to be executed

  1. Junit - 测试框架介绍
  2. Junit - Eclipse 教程
  3. Junit - 基础注解(@BeforeClass、@Before、@Test、@After、@AfterClass)
  4. Junit - 断言方法(Assert Methods)
  5. Junit - 参数化测试(Parameterized Test)
  6. Junit - 套件测试(Suite Test)
  7. Junit - 忽略测试(Ignore Test)
  8. Junit - 超时测试(Timeout Test)
  9. Junit - 期望异常测试(Expected Test)
  10. Junit - 优先级测试(FixMethodOrder Test)
  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这些注解都是JUnit测试框架中的注解,用于声明测试用例方法和测试执行的前置条件、后置处理等。 - `@Test`:用于标注测试用例方法,JUnit框架会自动执行被该注解标记的方法。 - `@BeforeClass`:用于标注在所有测试用例执行前需执行的方法,通常用于执行一些初始化操作,被该注解标记的方法必须是静态方法。 - `@Before`:用于标注在每个测试用例执行前需执行的方法,通常用于执行一些初始化操作。 - `@After`:用于标注在每个测试用例执行后需执行的方法,通常用于执行一些清理操作。 - `@AfterClass`:用于标注在所有测试用例执行后需执行的方法,通常用于执行一些清理操作,被该注解标记的方法必须是静态方法。 下面是使用示例代码: ```java import org.junit.*; public class ExampleTest { @BeforeClass public static void beforeClass() { // 执行一些初始化操作 System.out.println("Before Class"); } @Before public void before() { // 执行一些初始化操作 System.out.println("Before"); } @Test public void test1() { // 执行测试用例1 System.out.println("Test1"); } @Test public void test2() { // 执行测试用例2 System.out.println("Test2"); } @After public void after() { // 执行一些清理操作 System.out.println("After"); } @AfterClass public static void afterClass() { // 执行一些清理操作 System.out.println("After Class"); } } ``` 在上面的示例中,`@BeforeClass`注解所标注的方法会在所有测试用例执行前执行一次,`@Before`注解所标注的方法会在每个测试用例执行前执行一次,`@Test`注解所标注的方法表示一个测试用例方法,`@After`注解所标注的方法会在每个测试用例执行后执行一次,`@AfterClass`注解所标注的方法会在所有测试用例执行后执行一次。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值