★ @Ignore:忽略的測試方法,標注的含義就是“某些方法尚未完成,暫不參與此次測試”;這樣的話測試結果就會提示你有幾個測試被忽略,而不是失敗。一旦你完成了相應函數,只需要把@Ignore標注刪去,就可以進行正常的測試。
★ @BeforeClass:針對所有測試,只執行一次,且必須為static void;
★ @AfterClass:針對所有測試,只執行一次,且必須為static void;
所以一個Junit 4 的單元測試用例執行順序為:@BeforeClass –> @Before –> @Test –> @After –> @AfterClass;每一個測試方法的調用順序為:@Before –> @Test –> @After。
如下面例子:
import static org.junit.Assert.*; import org.junit.After;import org.junit.AfterClass;import org.junit.Before;import org.junit.BeforeClass;import org.junit.Ignore;import org.junit.Test; public class JUnit4Test {
@Before
public void before() {
System.out.println("@Before");
}
@Test
public void test() {
System.out.println("@Test");
assertEquals(5 + 5, 10);
}
@Ignore
@Test
public void testIgnore() {
System.out.println("@Ignore");
}
@Test(timeout = 50)
public void testTimeout() {
System.out.println("@Test(timeout = 50)");
assertEquals(5 + 5, 10);
}
@Test(expected = ArithmeticException.class)
public void testExpected() {
System.out.println("@Test(expected = Exception.class)");
throw new ArithmeticException();
}
@After
public void after() {
System.out.println("@After");
}
@BeforeClass
public static void beforeClass() {
System.out.println("@BeforeClass");
};
@AfterClass
public static void afterClass() {
System.out.println("@AfterClass");
};
};
右擊測試類,選擇Junit運行……
輸出結果如下:
@BeforeClass
@Before
@Test(timeout = 50)
@After
@Before
@Test(expected = Exception.class)
@After
@Before
@Test
@After
@AfterClass
在eclipse中junit運行結果視圖中可以看到testIgnore是被忽略的,沒有執行;還有其中有一個方法運行報錯。
2. 使用HttpUnit進行Web應用測試:
上面我們介紹Junit是對應用程序代碼的片段做測試,那么如何對Web應用進行測試呢?這就需要我們了解HttpUnit了。
2.1 什么是HttpUnit:
HttpUnit是SourceForge下面的一個開源項目,它是基于Junit的一個測試框架,主要關注于測試Web應用,解決使用 Junit框架無法對遠程Web內容進行測試的弊端。HttpUnit通過模擬瀏覽器的行為,處理頁面框架(frames),cookies頁面跳轉 (redirects)等。通過HttpUnit提供的功能,你可以和服務器端進行信息交互,將返回的網頁內容作為普通文本、XML Dom對象或者是作為鏈接、頁面框架、圖像、表單、表格等的集合進行處理。HttpUnit還提供了一個模擬Servlet容器,讓你可以不需要發布 Servlet,就可以對Servlet的內部代碼進行測試。
2.2 如何使用HttpUnit:
到HttpUnit的主頁http://httpunit.sourceforge.net下載最新的包文件,解壓后將%httpunit_home%/lib/*.jar; %httpunit_home%/jars/*.jar加入到Eclipse工程的Java build Path變量中。
2.3 如何使用HttpUnit和Junit編寫Web應用的測試用例:
在HttpUnit框架中,WebConversation類是最重要的類,它用于模擬瀏覽器的行為,WebRequest類用于模仿客戶請求,通過它可以向服務器發送信息,WebResponse類用于模擬瀏覽器獲取服務器端的響應信息。
下面我們用HttpUnit編寫一個測試用例,測試在百度里面搜索“誠毅軟件”,搜索結果里面有沒有包含“我們努力使事情更簡單”的內容。
在Eclipse中運行結果中可見在百度里面搜索“誠毅軟件”,搜索結果里面有包含“我們努力使事情更簡單”的內容。
3. 使用EclEmma進行覆蓋測試
3.1 什么是覆蓋測試
原文轉自:http://www.uml.org.cn/Test/201001217.asp