日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
NetBeans使用教程入門篇

一.創(chuàng)建項(xiàng)目

創(chuàng)新互聯(lián)是專業(yè)的尼木網(wǎng)站建設(shè)公司,尼木接單;提供成都網(wǎng)站建設(shè)、成都做網(wǎng)站,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行尼木網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

  下面打開NetBeans,然后點(diǎn)擊菜單“文件”->“新建項(xiàng)目”,打開“新建項(xiàng)目”對(duì)話框:

請(qǐng)?jiān)凇邦悇e”中選擇“常規(guī)”,再?gòu)摹绊?xiàng)目”中選擇“Java應(yīng)用程序”,然后點(diǎn)擊“下一步”,進(jìn)入“新建Java應(yīng)用程序”對(duì)話框:

在這個(gè)對(duì)話框中需要設(shè)置項(xiàng)目的名稱以及項(xiàng)目所在目錄,我為自己的項(xiàng)目起名為JUnitTest,“項(xiàng)目位置”為G:\YPJCCK\JUnit\NetBeans,此外,請(qǐng)將“創(chuàng)建主類”前的對(duì)號(hào)去掉。項(xiàng)目創(chuàng)建好后,已經(jīng)自帶了JUnit 3.8.1。

二.編寫用于測(cè)試的JavaBean

  用于測(cè)試的JavaBean很簡(jiǎn)單,名為Book,只有id和name兩個(gè)屬性,這兩個(gè)屬性將分別用于兩個(gè)用例當(dāng)中。下面開始編寫該JavaBean。
  請(qǐng)點(diǎn)擊“文件”->“新建文件”,打開“新建文件”對(duì)話框:

確?!绊?xiàng)目”選擇的是JUnitTest,然后在“類別”中選中Java類,在“文件類型”中選中Java類,點(diǎn)擊“下一個(gè)”,進(jìn)入下一窗口:

設(shè)置類名為Book,包為net.zheng.junit.test,設(shè)置完成后點(diǎn)擊“完成”,修改代碼如下:

package net.zheng.junit.test;

  public class Book {
    private String id = null;
    private String name = null;

    public String getId() {
      return id;
    }
    public void setId(String id) {
      this.id = id;
    }
    public String getName() {
      return name;
    }
    public void setName(String name) {
      this.name = name;
    }
  }
 

  至此,用于測(cè)試的JavaBean編寫完成。

三.編寫測(cè)試用例

  這里只用了一個(gè)類進(jìn)行測(cè)試,名為BookTest,該類繼承自junit.framework.TestCase類。BookTest類包含兩個(gè)用例,分別對(duì)應(yīng)該類的testId和testName方法,即每個(gè)方法實(shí)現(xiàn)了一個(gè)測(cè)試用例。注意,在JUnit 中,junit.framework.TestCase的子類中每個(gè)用來實(shí)現(xiàn)測(cè)試用例的方法都必須以testXXX的格式來命名,這些方法在運(yùn)行時(shí)會(huì)被執(zhí)行。此外,BookTest還包括setUp和tearDown這兩個(gè)方法,前者在每個(gè)測(cè)試方法開始之前執(zhí)行,多用來做初始化;后者在每個(gè)測(cè)試方法完成之后執(zhí)行,多用來清理資源。下面開始編寫B(tài)ookTest。

  請(qǐng)點(diǎn)擊“文件”->“新建文件”,打開“新建文件”對(duì)話框:

確保“項(xiàng)目”選擇的是JUnitTest,然后在“類別”中選中JUnit類,在“文件類型”中選中現(xiàn)有類的測(cè)試,點(diǎn)擊“下一個(gè)”,進(jìn)入下一窗口:

選擇要測(cè)試的類,點(diǎn)擊“完成”,修改代碼如下:

package net.zheng.junit.test;

  import junit.framework.TestCase;
  import junit.framework.Assert;

  public class BookTest extends TestCase {
    Book book = null;

    //建議為測(cè)試類創(chuàng)建構(gòu)造
    public BookTest(String name) {
      super(name);
    }

    protected void setUp() throws Exception {
      //調(diào)用超類的setUp(),以確保測(cè)試環(huán)境被初始化
      super.setUp();

      System.out.println("測(cè)試開始!");
      book = new Book();
      System.out.println("book對(duì)象被初始化!");
    }

    protected void tearDown() throws Exception {
      System.out.println("book對(duì)象將被清理!");
      book = null;
      System.out.println("測(cè)試結(jié)束!");

      //調(diào)用超類的tearDown(),以確保測(cè)試環(huán)境被清理
      super.tearDown();
    }

    public void testId() {
      book.setId("001"); //設(shè)置id屬性的值為001
      //使用Assert查看id屬性的值是否為001
      Assert.assertEquals("001", book.getId());
      System.out.println("id屬性被測(cè)試!");
    }

    public void testName() {
      book.setName("ASP"); //設(shè)置name屬性的值為ASP
      //使用Assert查看name屬性的值是否為JSP,這是個(gè)必然出現(xiàn)錯(cuò)誤的測(cè)試
      Assert.assertEquals("JSP", book.getName());
      System.out.println("name屬性被測(cè)試!");
    }
  }

  這里setUp和tearDown方法沒什么好說的,就是執(zhí)行了對(duì)book對(duì)象的初始化和清理,不過testId和testName需要說明一下。前者是在對(duì)book的id屬性進(jìn)行測(cè)試,首先賦值為”001”,然后使用Assert的assertEquals方法查看id屬性中存放的值是否是期待的值,由于我的期待值也是”001”,所以執(zhí)行后這個(gè)用例應(yīng)該是成功的;后者則是對(duì)book的name屬性進(jìn)行測(cè)試,也是首先賦值為”ASP”,然后使用 Assert的assertEquals方法查看其值是否是期待的,由于我特意將期待值設(shè)定為根本不可能的”JSP”,因此這個(gè)用例執(zhí)行后會(huì)出現(xiàn)一個(gè)錯(cuò)誤。但請(qǐng)注意,由于我是特意要讓測(cè)試出現(xiàn)錯(cuò)誤,所以將期待值設(shè)定成了不可能的值,如果你是測(cè)試人員,請(qǐng)千萬(wàn)不要這么做,否則如果別的地方導(dǎo)致了錯(cuò)誤,很容易給自己造成不必要的麻煩。

  下面簡(jiǎn)單介紹一下上邊用到的靜態(tài)類junit.framework.Assert。該類主要包含8個(gè)方法:

  1.a(chǎn)ssertEquals()方法,用來查看對(duì)象中存的值是否是期待的值,與字符串比較中使用的equals()方法類似;

  2.a(chǎn)ssertFalse()和assertTrue()方法,用來查看變量是是否為false或true,如果assertFalse()查看的變量的值是false則測(cè)試成功,如果是true則失敗,assertTrue()與之相反;

  3.a(chǎn)ssertSame()和assertNotSame()方法,用來比較兩個(gè)對(duì)象的引用是否相等和不相等,類似于通過“==”和“!=”比較兩個(gè)對(duì)象;

  4.a(chǎn)ssertNull()和assertNotNull()方法,用來查看對(duì)象是否為空和不為空;

  5.fail ()方法,意為失敗,用來拋出錯(cuò)誤。我個(gè)人認(rèn)為有兩個(gè)用途:首先是在測(cè)試驅(qū)動(dòng)開發(fā)中,由于測(cè)試用例都是在被測(cè)試的類之前編寫,而寫成時(shí)又不清楚其正確與否,此時(shí)就可以使用fail方法拋出錯(cuò)誤進(jìn)行模擬;其次是拋出意外的錯(cuò)誤,比如要測(cè)試的內(nèi)容是從數(shù)據(jù)庫(kù)中讀取的數(shù)據(jù)是否正確,而導(dǎo)致錯(cuò)誤的原因卻是數(shù)據(jù)庫(kù)連接失敗。

四.運(yùn)行BookTest

  編寫好BookTest后,就可以運(yùn)行了。請(qǐng)?jiān)凇绊?xiàng)目”欄中選中BookTest,點(diǎn)擊鼠標(biāo)右鍵,選擇“運(yùn)行文件”,測(cè)試信息會(huì)從“輸出”窗口輸出:

五.測(cè)試套件

  當(dāng)有多個(gè)測(cè)試類需要一次性進(jìn)行測(cè)試時(shí),可以使用測(cè)試套件來完成這項(xiàng)工作。
  在NetBeans中,點(diǎn)擊“文件”->“新建文件”,打開“新建文件”對(duì)話框:

確?!绊?xiàng)目”選擇的是JUnitTest,然后在“類別”中選中JUnit類,在“文件類型”中選中測(cè)試套件,點(diǎn)擊“下一個(gè)”,進(jìn)入下一窗口:

修改“類名”為AllTests,點(diǎn)擊“完成”,然后修改代碼如下:

package net.zheng.junit.test;

  import junit.framework.*;

  public class AllTests extends TestCase {
    public AllTests(String testName) {
      super(testName);
    }

    public static Test suite() {
      TestSuite ts= new TestSuite("AllTests");
      ts.addTestSuite(BookTest.class);
      return ts;
    }
  }

  其中TestSuite是用來組織測(cè)試類的,通過其addTestSuite()方法將測(cè)試類添加到ts對(duì)象中,凡是添加到ts中的測(cè)試類都將在運(yùn)行文件時(shí)被執(zhí)行。此外,您也可以在定義ts對(duì)象時(shí)利用其構(gòu)造函數(shù)將測(cè)試類添加給ts對(duì)象,例如:

  TestSuite ts = new TestSuite(BookTest.class);

這并不會(huì)影響到后續(xù)使用addTestSuite()方法。測(cè)試套件的運(yùn)行方法與之前一樣。

  此外,JUnit自身也提供了運(yùn)行測(cè)試的環(huán)境,但需要在NetBeans中做一些改動(dòng),所以就不作詳細(xì)介紹了,這里只將代碼給出:

 package net.zheng.junit.test;

  import junit.framework.*;

  public class Test {
    public static void main(String[] args) {
      //使用TestSuite組裝測(cè)試類
      TestSuite ts = new TestSuite();
      ts.addTestSuite(TestBook.class);
      //textui,命令行方式
      junit.textui.TestRunner.run(ts);
      //swingui,Swing方式
      //junit.swingui.TestRunner.run(ts.getClass());
      //awtui,AWT方式
      //junit.awtui.TestRunner.run(ts.getClass());
    }
  }

 


六.小結(jié)

  其實(shí)JUnit上手很容易,遠(yuǎn)比想象的要簡(jiǎn)單的多,但我覺得如何編寫測(cè)試類是很需要經(jīng)驗(yàn)的,因?yàn)樵S多時(shí)候,測(cè)試一個(gè)用例,但涉及到可能不止一個(gè)類;而有些時(shí)候,一個(gè)類可能是做為工具使用,里邊涉及很多內(nèi)容,那么測(cè)試時(shí)是否還是只編寫一個(gè)測(cè)試類呢?關(guān)于這個(gè)話題,我想應(yīng)該是仁者見仁、智者見智的,其實(shí)這才是測(cè)試的難題所在。

【編輯推薦】

  • NetBeans 6.7 RC2發(fā)布 正式版月底出爐
  • Eclipse還是Netbeans
  • NetBeans Struts之頁(yè)面布局
  • Ubuntu9.04下的Netbeans6.5.1字體無(wú)法抗鋸齒的解決辦法
  • Netbeans6.7平臺(tái)Scala插件V1版發(fā)布

  • 網(wǎng)頁(yè)名稱:NetBeans使用教程入門篇
    文章來源:http://m.5511xx.com/article/ccsepps.html