JUnit及其相關的單元測試技術(2)

發表于:2015-09-21來源:uml.org.cn作者:不詳點擊數: 標簽:junit
★ @Ignore:忽略的測試方法,標注的含義就是某些方法尚未完成,暫不參與此次測試;這樣的話測試結果就會提示你有幾個測試被忽略,而不是失敗。一旦你

  ★ @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

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97