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

简介: 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进行单元测试的类:

packagein.co.javatutorials;
publicclassArithmetic {
publicintadd(inti, intj) {
returni+j;
    }
}

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

packagein.co.javatutorials;
importstaticorg.junit.Assert.assertEquals;
importorg.junit.After;
importorg.junit.AfterClass;
importorg.junit.Before;
importorg.junit.BeforeClass;
importorg.junit.Test;
publicclassArithmeticTest {
@BeforeClasspublicstaticvoidsetUpClass() {
// one time setup methodSystem.out.println("@BeforeClass - executed only one time and is first method to be executed");
    }
@AfterClasspublicstaticvoidtearDownClass() {
// one time tear down methodSystem.out.println("@AfterClass - executed only one time and is last method to be executed");
    }
@BeforepublicvoidsetUp() {
// set up method executed before every test methodSystem.out.println("@Before - executed before every test method");
    }
@AfterpublicvoidtearDown() {
// tear down method executed after every test methodSystem.out.println("@After - executed after every test method");
    }
@TestpublicvoidtestAdd() {
Arithmeticarithmetic=newArithmetic();
intactualResult=arithmetic.add(3, 4);
intexpectedResult=7;
assertEquals(expectedResult, actualResult);
System.out.println("@Test - defines test method");
    }
}

样例结果输出

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

image.png

样例日志输出:

@BeforeClass-executedonlyonetimeandisfirstmethodtobeexecuted@Before-executedbeforeeverytestmethod@Test-definestestmethod@After-executedaftereverytestmethod@AfterClass-executedonlyonetimeandislastmethodtobeexecuted

  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)
目录
相关文章
|
4月前
|
XML Java 测试技术
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
这篇文章介绍了Spring5框架的三个新特性:支持@Nullable注解以明确方法返回、参数和属性值可以为空;引入函数式风格的GenericApplicationContext进行对象注册和管理;以及如何整合JUnit5进行单元测试,同时讨论了JUnit4与JUnit5的整合方法,并提出了关于配置文件加载的疑问。
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
|
3月前
|
Java 数据库连接 数据格式
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
IOC/DI配置管理DruidDataSource和properties、核心容器的创建、获取bean的方式、spring注解开发、注解开发管理第三方bean、Spring整合Mybatis和Junit
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
|
4月前
|
Java 测试技术 Maven
Junit单元测试 @Test的使用教程
这篇文章是一个关于Junit单元测试中`@Test`注解使用的教程,包括在Maven项目中添加Junit依赖、编写带有@Test注解的测试方法,以及解决@Test注解不生效的常见问题。
|
6月前
|
Java Spring 容器
Spring5系列学习文章分享---第六篇(框架新功能系列+整合日志+ @Nullable注解 + JUnit5整合)
Spring5系列学习文章分享---第六篇(框架新功能系列+整合日志+ @Nullable注解 + JUnit5整合)
39 0
|
6月前
|
Java 测试技术
java的Junit测试@Test@Before@After Assert.assertEquals
java的Junit测试@Test@Before@After Assert.assertEquals
|
Java 测试技术 Maven
JUnit5学习之五:标签(Tag)和自定义注解
学习和实践JUnit5的标签过滤和自定义注解功能
128 1
JUnit5学习之五:标签(Tag)和自定义注解
导入了Junit依赖,但@Test注解依然爆红~
导入了Junit依赖,但@Test注解依然爆红~
161 0
|
Java 数据库 Spring
Spring Boot 学习研究笔记(四) -Junit 5 中注解特性
Spring Boot 学习研究笔记(四) -Junit 5 中注解特性
|
Java 测试技术
单元测试_JUnit常用单元测试注解介绍及代码演示 2
单元测试_JUnit常用单元测试注解介绍及代码演示
134 0
|
2月前
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
32 5