JUnit常用注解使用规范及代码示例

JUnit常用注解使用规范及代码示例


开发人员写完一段代码逻辑要想快速的验证其是否正确,最常用的方式就是写单元测试。在java技术体系中,Junit就是最常用的单元测试工具。下面介绍一下最常用的几个注解。

@BeforeClass

@BeforeClass是在整个测试类的所有单元测试用例执行前只执行1次,一般用于初始化全局使用的对象。

@BeforeClass对应的方法必须是static方法,就是说@BeforeClass只能用在静态方法前,不然会报以下异常:
一个类可以有多个@BeforeClass方法

java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=test1], {ExactMatcher:fDisplayName=test1(com.wongoing.hadoop.test.HadoopHdfsTest)], {LeadingIdentifierMatcher:fClassName=com.wongoing.hadoop.test.HadoopHdfsTest,fLeadingIdentifier=test1]] from org.junit.internal.requests.ClassRequest@161cd475
	at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:40)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createFilteredTest(JUnit4TestLoader.java:83)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:74)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:49)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:526)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:770)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:464)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)


@AfterClass

@AfterClass是在整个测试类的所有单元测试用例执行后执行1次,一般用于释放对象资源。

@AfterClass对应的方法也必须是static的。如果潍坊同样报上面的错误。

@Before

@Before是在一个单元测试类的每个单元测试用例方法执行前都会执行1次。

@Before对应的方法是对象方法,不能是静态的。

@After

@After是在一个单元测试类的每个单元测试用例方法执行后都会执行1次。

@After对应的方法是对象方法,不能是静态的。

@Test

@Test用于标注一个方法是否为单元测试方法。

@Test标注的方法是对象方法,不能是静态的。

代码与输出示例

package com.wongoing.hadoop.test;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class HadoopHdfsTest {
	
	@BeforeClass
	public static void beforeClass1() {
		 System.out.println("beforeClass1...");
	}
	
	@BeforeClass
	public static void beforeCalss2() {
		System.out.println("beforeClass2...");
	}
	
	@Before
	public void before() {
		System.out.println("before...");
	}
	
	@Test
	public void test1() {
		System.out.println("test1...");
	}
	
	@Test
	public void test2() {
		System.out.println("test2...");
	}
	
	@Test
	public void test3() {
		System.out.println("test3...");
	}
	
	@After
	public void after() {
		System.out.println("after...");
	}
	
	@AfterClass
	public static void afterClass() {
		System.out.println("afterClass...");
	}
}

执行输出

beforeClass1...
beforeClass2...
before...
test1...
after...
before...
test2...
after...
before...
test3...
after...
afterClass...
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页