佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > JBuilder2005單元測(cè)試之捆綁多個(gè)用例

JBuilder2005單元測(cè)試之捆綁多個(gè)用例

熱門標(biāo)簽:Linux服務(wù)器 Mysql連接數(shù)設(shè)置 電子圍欄 服務(wù)器配置 科大訊飛語(yǔ)音識(shí)別系統(tǒng) 團(tuán)購(gòu)網(wǎng)站 銀行業(yè)務(wù) 阿里云
目前我們只為Subsection類生成了一個(gè)測(cè)試用例,在這節(jié)里,我們按照前述的方法,通過(guò)Test Case向?qū)镾tringUtils類創(chuàng)建一個(gè)測(cè)試用例代碼框架,并編寫測(cè)試方法,然后將這兩個(gè)測(cè)試用例捆綁組合在一個(gè)測(cè)試套件中一起運(yùn)行。

  選中StringUtils類,通過(guò)File->New..->Test,雙擊Test Case圖標(biāo)為StringUtils類的string2Array()方法創(chuàng)建測(cè)試用例,接受默認(rèn)的測(cè)試用例類名TestStringUtils。

  在向?qū)傻臏y(cè)試用例代碼框架中,刪除測(cè)試固件(因?yàn)槭庆o態(tài)方法,沒(méi)有必要用固件),即刪除StringUtils的成員變量聲明,setUp()和tearDown()方法。并在類中定義一個(gè)isArrayEquals()的方法,刪除向?qū)傻膖estString2Array()測(cè)試方法體中的內(nèi)容,編寫自己的測(cè)試代碼,其最終代碼如下所示:

  代碼清單 錯(cuò)誤!文檔中沒(méi)有指定樣式的文字。TestStringUtils:StringUtils類的測(cè)試用例

  1. package chapter25;
  2. import junit.framework.*;
  3. public class TestStringUtils extends TestCase
  4. {
  5.  public void testString2Array() {
  6.   String str1 = null, str2 = ", str3 = "a", str4 = "a,b,c",str5 = ",a,b,";
  7.   String[] arr1 = null, arr2 = {"}, arr3 = {"a"}, arr4 = {"a", "b", "c"},
  8.   arr5 = {", "a", "b", "}, trimArr5 = {"a", "b"};
  9.
  10.  assertNull(StringUtils.string2Array(str1, ',', false));
  11.  assertTrue(isArrayEquals(arr1, StringUtils.string2Array(str1, ',', false)));
  12.  assertTrue(isArrayEquals(arr2, StringUtils.string2Array(str2, ',', false)));
  13.  assertTrue(isArrayEquals(arr3, StringUtils.string2Array(str3, ',', false)));
  14.  assertTrue(isArrayEquals(arr4, StringUtils.string2Array(str4, ',', false)));
  15.  assertTrue(isArrayEquals(arr5, StringUtils.string2Array(str5, ',', false)));
  16.  assertTrue(isArrayEquals(trimArr5, StringUtils.string2Array(str5, ',', true)));
  17.  assertFalse(isArrayEquals(StringUtils.string2Array(str5, ',', false),
  18.  StringUtils.string2Array(str5, ',', true)));
  19. }
  20.
  21. //判斷兩個(gè)字符數(shù)組是否相等
  22. private boolean isArrayEquals(String[] arr1, String[] arr2) {
  23.  if (arr1 == null || arr2 == null) {
  24.   if (arr1 == null arr2 == null) {
  25.    return true;
  26.   } else {
  27.    return false;
  28.   }
  29.  } else if (arr1.length != arr2.length) {
  30.   return false;
  31.  } else {
  32.   for (int i = 0; i arr1.length; i++) {
  33.    if (!arr1[i].equals(arr2[i])) {
  34.     return false;
  35.    }
  36.   }
  37.   return true;
  38.  }
  39. }
  40. }


  雖然JUnit框架提供了許多assertEquals()的重載方法,但卻沒(méi)有入?yún)⑹莾勺址當(dāng)?shù)組的assertEquals()重載方法,所以我們需要自己定義一個(gè)判斷兩字符串?dāng)?shù)組是否相同的方法:isArrayEquals(),如第22~39行所示。

  在testString2Array()方法中,我們提供了覆蓋多數(shù)情況的字符串測(cè)試點(diǎn)(特殊轉(zhuǎn)換字符串和其目標(biāo)值),如第6~8行所示。爾后調(diào)用assertXxx()設(shè)置測(cè)試規(guī)則。你也可以像上一節(jié)中的TestSubsection測(cè)試用例一樣運(yùn)行它。

  注意:

  如果你在內(nèi)容窗格TestStringUtils文件標(biāo)簽上右擊,發(fā)現(xiàn)彈出的菜單中只有Run Test using "TestSubsection"時(shí),請(qǐng)?jiān)赑roject->Project Properties...->Run->在Run設(shè)置頁(yè)中取消TestSubsection運(yùn)行設(shè)置項(xiàng)的Context Menu選項(xiàng),否則只會(huì)運(yùn)行原TestSubsection的測(cè)試用例。

  只包括10個(gè)類左右的小型項(xiàng)目工程也許無(wú)需用到測(cè)試套件,僅通過(guò)逐一單獨(dú)運(yùn)行測(cè)試用例來(lái)完成測(cè)試就可以了,但對(duì)于一個(gè)包含較多測(cè)試用例的工程,測(cè)試套件能給你帶來(lái)極大的方便,它將多個(gè)測(cè)試用例捆綁在一起運(yùn)行,達(dá)到一呼而百應(yīng)的批量處理效果。
   下面我們就來(lái)為TestSubsection和TestStringUtils這兩個(gè)測(cè)試用例創(chuàng)建一個(gè)測(cè)試套件,并通過(guò)測(cè)試套件運(yùn)行這兩個(gè)測(cè)試。

  1.File->New...->Test->在Test頁(yè)中雙擊Test Suite圖標(biāo)啟動(dòng)創(chuàng)建測(cè)試套件的向?qū)В缦聢D所示:


  圖 錯(cuò)誤!文檔中沒(méi)有指定樣式的文字。選擇套件中捆綁的測(cè)試用例

  在對(duì)話框列表中已經(jīng)列出了工程中已有的兩上測(cè)試用例類,你可以通過(guò)右邊的Add...和Remove添加或刪除測(cè)試用例。你可以通過(guò)Add Recursively,將指定目錄下的所有測(cè)試用例一并加入。

  點(diǎn)擊Next到下一步。

  2.指定測(cè)試套件類名。


  圖 錯(cuò)誤!文檔中沒(méi)有指定樣式的文字。指定測(cè)試套件類名

  接受JBuilder為測(cè)試套件所提供的默認(rèn)類名,按Finish完成該測(cè)試套件的創(chuàng)建,其代碼如下所示:

  代碼清單 錯(cuò)誤!文檔中沒(méi)有指定樣式的文字。測(cè)試套件類

  1. package chapter25;
  2. import junit.framework.*;
  3. public class TestSuite1
  4. extends TestCase
  5. {
  6.  public TestSuite1(String s) {
  7.   super(s);
  8.  }
  9.
  10. public static Test suite() {
  11.  TestSuite suite = new TestSuite();
  12.  suite.addTestSuite(chapter25.TestStringUtils.class);
  13.  suite.addTestSuite(chapter25.TestSubsection.class);
  14.  return suite;
  15. }
  16. }

  測(cè)試套件類最主要的代碼是suite()方法(第10~15行),首先在方法中聲明一個(gè)TestSuite變量,通過(guò)addTestSuite()方法將TestStringUtils和TestSubsection測(cè)試用例捆綁在一起,你也可以通過(guò)這個(gè)方法添加其他的測(cè)試用例類。

  TestSuite除可以將整個(gè)測(cè)試用例捆綁外,還可以捆綁另外的一個(gè)測(cè)試套件或一個(gè)測(cè)試用例中的測(cè)試方法:

  l 添加一個(gè)測(cè)試套件

  suite.addTest(suite_1)

  l 添加測(cè)試用例某個(gè)方法

  suite.addTest(new TestSubsection ("testGetValue"))

  在工程窗格資源樹的TestSuite1文件節(jié)點(diǎn)上右擊,在彈出的菜單中選擇Run Test using Defaults,JBuilder啟動(dòng)JBTestRunner,運(yùn)行套件中捆綁的所有測(cè)試用例,其窗口如下圖所示:


  圖 錯(cuò)誤!文檔中沒(méi)有指定樣式的文字。用測(cè)試套件運(yùn)行組合運(yùn)行多個(gè)測(cè)試用例

  TestSuite下有兩個(gè)測(cè)試用例類,測(cè)試用例節(jié)點(diǎn)下是測(cè)試方法節(jié)點(diǎn)。

標(biāo)簽:衢州 廣元 萍鄉(xiāng) 蚌埠 江蘇 大理 衡水 棗莊

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《JBuilder2005單元測(cè)試之捆綁多個(gè)用例》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    安徽省| 湾仔区| 政和县| 宜君县| 黎城县| 阿克苏市| 锡林郭勒盟| 长泰县| 寿宁县| 新昌县| 涟源市| 交口县| 阳东县| 哈密市| 长沙市| 海原县| 鄂托克前旗| 天祝| 凤城市| 深圳市| 禄丰县| 岳普湖县| 新平| 乌鲁木齐县| 凤城市| 汪清县| 涿鹿县| 石嘴山市| 鹤庆县| 监利县| 扎赉特旗| 绥德县| 镶黄旗| 富民县| 新密市| 西城区| 郴州市| 甘孜| 阜康市| 青铜峡市| 延庆县|