位置:首頁 > Java技術 > JUnit教學 > JUnit規則

JUnit規則

在本節中,我們學習和了解JUnit中叫做規則的新功能,它允許非常靈活在測試類重新定義每個測試方法的行為。為了這個目的,@Rule注解被使用來標出測試類的公共字段。這些字段類型為MethodRule,這是測試方法如何運行並報告。多個MethodRules可以應用到一個測試方法。MethodRule接口有很多的實現,如ErrorCollector在發現了第一個問題之後,也允許繼續執行一個測試,ExpectedException 允許在測試規範預期的異常類型和消息,TestName 使得目前的測試名稱在測試方法內部可用,以及其他許多。除了那些已經定義的規則,開發人員可以創建自己的自定義規則,並使用來測試自己用例。

下麵我們介紹方法,可以使用一個名為TestName,在我們自己現有的測試規則。 TestName被調用在測試開始時。

NameRuleTest.java

package com.javacodegeeks.junit;

import static org.junit.Assert.*;

import org.junit.*;
import org.junit.rules.TestName;

public class NameRuleTest {
	@Rule
	public TestName name = new TestName();

	@Test
	public void testA() {
		System.out.println(name.getMethodName());
		assertEquals("testA", name.getMethodName());

	}

	@Test
	public void testB() {
		System.out.println(name.getMethodName());
		assertEquals("testB", name.getMethodName());
	}
}

我們可以看到,@Rule注解標記的類型是MethodRule的公共字段名,具體而言是TestName類型。 然後,可以在我們的測試中,這名稱字段使用和查找,例如測試方法的名稱,這種特定情況。