您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
用WSAD的JUnit向導執(zhí)行單元測試
作者:網絡轉載 發(fā)布時間:[ 2013/3/8 15:54:47 ] 推薦標簽:

WebSphere Application Developer(WSAD)5.0提供了一組JUnit向導,簡化了JUnit的應用。其中一個向導能夠自動生成JUnit測試代碼,同時,WSAD的調試視圖還能夠清楚地顯示出JUnit測試的結果。

接下來我們來看看如何在WSAD中對下面的Java類進行JUnit測試:

// ReverseName.java
import org.apache.oro.text.perl.*;

public class ReverseName {
  private Perl5Util perl = new Perl5Util();

  public String reverse(String in) {
    String out = perl.substitute( "s%([A-Z][a-z]*) ([A-Z][a-z]*)%$2, $1%", in);
    return out;
  }
}

這個類的功能是輸入一個字符串,例如“aa bb”,然后把它翻轉成逗號分隔的形式,即“bb,aa”。這個類用到了Jakarta的ORO包Perl4Util類的正則表達式功能。

為了進行測試,首要要從http://jakarta.apache.org的Jakarta網站下載和安裝ORO包,從http://www.junit.org下載和安裝JUnit工具。當然,你也可以修改ReverseName類,不要讓它使用Perl5Util類,免去安裝ORO包之勞。

下載好ORO包和JUnit工具后,在WSAD中創(chuàng)建一個新的項目,然后將ORO包和JUnit工具加入到項目的構造路徑,再把上面的代碼粘貼到ReverseName.java。將ORO包和JUnit工具加入構造路徑的步驟是:在瀏覽器視圖中選擇項目,按鼠標右鍵,選擇“特性”,再選擇“Java構建路徑”,在JAR文件選擇面板中,找到JUnit的安裝路徑并加入junit.jar文件。

創(chuàng)建JUnit測試實例的步驟是:在瀏覽器視圖中右擊ReverseName類文件,選擇菜單“新建”→“其他”,打開左邊樹形列表的Java節(jié)點,如圖一,選擇JUnit,然后在右邊清單中選擇“測試實例”,點擊“下一步”。

向導顯示出JUnit測試實例對話框。認可默認的源文件夾、包名稱、測試實例名稱等參數(shù)。選中main方法“public static void main(String[] args)”的檢查框,這時,“對下列項添加TestRunner語句”選項將變?yōu)榭捎。在下拉列表框中,選擇text ui。選中另外兩個方法——setup()、tearDown()的檢查框,如圖二。點擊“下一步”。

在“選擇應為其創(chuàng)建測試方法存根的方法”對話框中,如圖三,選中reverseName方法,然后點擊“完成”。

向導將生成下列代碼:

// ReverseNameTest.java

import junit.framework.TestCase;
public class ReverseNameTest extends TestCase {

  public ReverseNameTest(String arg0) {super(arg0);}

  public static void main(String[] args) {
    junit.textui.TestRunner.run(ReverseNameTest.class);
  }

  protected void setUp() throws Exception {
    super.setUp();   
  }
  protected void tearDown() throws Exception {
    super.tearDown();
  }
  public void testReverseName() {
  }
}

對于該類,注意下面幾點:

⑴ 它導入了junit.framework包。

⑵ 它擴展了junit.framework.TestCase。

⑶ 它包含了兩個特殊的JUnit方法,即setUp和tearDown。

⑷ 它只有一個測試方法,testReverseName,方法名稱中帶有必需的前綴test。

⑸ 它的main方法運行JUnit的文本版,調用特定的測試方法。

自動生成的ReverseNameTest類還需要加入一些測試代碼。不過本例不需要在setUp和tearDown方法中加入代碼,之所以要在向導中選中這兩個方法,是為了示范向導的功能。對于復雜一些的測試,我們可以讓setUp方法打開幾個文本流文件(或者是提取記錄集的JDBC數(shù)據(jù)庫連接),然后讓tearDown方法關閉這些文件流(或JDBC數(shù)據(jù)庫連接),JUnit將自動在測試開始、結束處調用setUp和tearDown方法。

下面我們加入一個測試。在編輯器中打開ReverseNameTest,修改testReverseName方法,使其包含下列代碼:

public void testReverseName() {
  ReverseName  fix = new ReverseName();
  assertEquals(
    fix.reverse("aa bb"),
        "bb, aa");
  assertEquals(
    fix.reverse("cc dd"),
        "dd, cc");
  assertEquals(
      fix.reverse("ee ff"),
        "ee, ff");
}

TestCase基類提供了大量的assert方法,可以對各種各樣的條件進行測試。

保存修改之后,接下來可以運行測試了。在ReverseNameTest代碼窗口仍打開的狀態(tài)下,打開“調試”透視圖。點擊ReverseNameTest編輯器,確保該類處于可見狀態(tài)。點擊“運行”按鈕(圖標為跑步的人)旁邊的下拉箭頭,選擇“運行為”→“JUnit測試”。注意屏幕的底部有一個JUnit視圖,JUnit視圖顯示出下列內容:

Failer Trace section:
junit.framework.ComparisionFailure:
expected<ff, ee>but was<ee, ff>
at denoncourt.Reverse

如果所有測試都順利通過,JUnit不會顯示任何錯誤信息。

軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd