亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Eclipse 3.1中用注釋單元測試框架(圖)

2019-11-18 13:01:32
字體:
來源:轉載
供稿:網友

  這篇文章將為大家介紹TestNG這個新的測試框架的特性,以及TestNG優于Junit3.X的地方。
  
  TestNG(Test Next Generation),顧名思義,下一代的測試框架。它是基于J2SE5.0的注釋特性的而構建的輕量級的單元測試框架結構。說起單元測試框架,大家都會自然地聯想到JUnit。用過JUnit3.X的程序開發人員,都會發現JUnit在提供了強大功能的同時,也存在很多令人沮喪的地方。其中一個問題就是,JUnit3.x 在每個測試方法調用前和調用后都會調用setUp()和tearDown()的方法。假如開發人員希望在不同的測試方法中重用同一個JDBC連接或者JNDI的Context的時候,會覺得很不方便。一般的解決這個問題的方法是使用靜態方法,而這樣的話,就必須小心并發控制的問題(多個線程訪問共享的靜態對象)。除此之外,JUnit 3.X對于多線程測試也比較麻煩,需要其他模塊的支持。
  
  這篇文章將為大家介紹TestNG這個新的測試框架的特性,以及TestNG優于Junit3.X的地方。眾所周知,Eclipse不僅僅是功能強大的java IDE,同時也是一個開放的應用集成平臺。而Eclipse3.1提供了對J2SE5.0的支持。因此,筆者將以Eclipse為運行環境,介紹Testng的安裝,使用和運行。Eclipse3.1可以從http://www.eclipse.org/downloads/index.php下載。
  
  關于注釋
  
  由于TestNG是基于J2SE5.0的注釋特性所構建的。因此讀者在閱讀本文之前,必須了解注釋的一些基本概念。關于J2SE的注釋特性,筆者曾經在另一篇文章中具體的介紹過,具體介紹請參考"參考資料"。這里只簡單的介紹一些概念。
  
  注釋是J2SE5.0所新提供的對于元數據的支持。程序開發人員可以在不改變原有邏輯的情況下,在源文件嵌入一些補充的信息。注釋都是由@Interface annotationName 來聲明的。注釋可以用來修飾類定義,方法,域變量等等。使用的時候是在修飾的對象的定義前@annotationName。注釋可以包含多個屬性,使用的時候為屬性賦值,例如 @annotationName(PRop1=value1,prop2=value2)。程序的開發人員還可以通過Java的反射特性,在運行時獲得這些注釋的信息。在后面的章節中,大家會看到TestNG是如何使用它所定義的注釋類型的來實現測試框架的。
  
  安裝TestNG
  
  在Eclipse中安裝testNG很簡單。和安裝其他的plugin的方法相似。首先啟動Eclipse3.1,在Help->Software Update->Find and Install, 在彈出的向導中,選擇"Search New Features to Install", 點擊"New Remote Site",如圖1所示。在URL中輸入 http://beust.com/eclipse,點擊"OK"。如圖2所示,點擊"Finish",Eclipse會幫助你完成下面的安裝。熟悉Eclipse的讀者對這個過程一定不會覺得生疏。
  
  圖1 新建Update Site
  
 Eclipse 3.1中用注釋單元測試框架(圖)(圖一)

  圖2 安裝TestNG
  
 Eclipse 3.1中用注釋單元測試框架(圖)(圖二)
點擊查看大圖

  安裝好TestNG后,在Eclipse中單擊"Window"->Show View->Other->Java->TestNG, TestNG的視圖就打開了。
  
  圖3 TestNG的視圖
  
 Eclipse 3.1中用注釋單元測試框架(圖)(圖三)
點擊查看大圖

  注重:TestNG的視圖的作用時為了現實測試結果。為了顯示視圖的功能,圖3的視圖是運行了一個測試用例后的結果。讀者假如是第一次打開視圖,應該是空白的。
  
  一個簡單的例子
  
  TestNG和JUnit不同,他使用注釋、正則表達式和基于xml的配置文件對測試方法進行配置的。我們先來看一個簡單的例子。
  
  1) 在Eclipse中創建一個Java的項目,com.catherine.lab.testng.demo
  
  2) 在Packet EXPlorer中,右鍵點擊剛生成的項目,選擇Properties。
  
  3) 在Properties屬性框中,選擇"Java Build Path",點擊"Add External JARs…"
  
  4) 在文件瀏覽的對話框中,選擇{eclipse 3.1 home Directory}/plugins/com.beust.testng.eclipse_XXX/eclipse_testng.jar,以及 {eclipse 3.1 home directory}/plugins/com.beust.testng.eclipse_XXX/lib/testng-jdk14.jar/以及testng-jdk15.jar. 點擊OK
  
  5) 在Project中創建一個package: com.catherine.lab.testng.firstTest。在package里邊創建一個類:FristTestSample.
  
  清單1 TestNG的第一個例子
  
  package com.catherine.lab.testng.firstTest;
  import com.beust.testng.annotations.*;
  public class FirstTestSample {
  public FirstTestSample() {
  super();
  }
  @Test
  public void testPass() {
  assert true : "This test should pass.";
  }
  
  @Test
  public void testFail() {
  assert false : "This test will fail";
  }
  
  @Configuration(beforeTestClass = true)
  public void doBeforeTests() {
  System.out.println("invoke before test class!");
  }
  
  @Configuration(afterTestClass = true)
  public void doAfterTests() {
  System.out.println("invoke after test class!");
  }
  }
  
  6) 在Eclipse中打開Run->Run..,如圖4所示。 首先在選擇使用TestNG的Project,而后在選擇編寫了測試邏輯的Class,點擊Run。測試結果就顯示在TestNG的視圖中了。如圖5所示。
  
  圖4 配置運行TestNG的程序
  
 Eclipse 3.1中用注釋單元測試框架(圖)(圖四)
點擊查看大圖

  圖5 TestNG的運行結果
  
 Eclipse 3.1中用注釋單元測試框架(圖)(圖五)
點擊查看大圖

  這是一個完整的測試用例。和JUnit不同,TestNG中實現測試邏輯的類不需要繼續任何父類。測試方法也無需遵循testXXX的命名規則。
  
  TestNG的類是大家所非常熟悉的普通的Java類,而在這個類中,所有的被@Test這個注釋所修飾的方法都會被當作測試方法來運行。除了測試類之外,TestNG還需要了一個配置文件,用來配置測試過程。以下是一個簡單的配置文件:testng.xml。
  
  清單2 testNG的配置文件
  
  <!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >
  <suite name="My First TestNG test">
  <test name="Hello Test!">
  <classes>
  <class name=" com.catherine.lab.testng.firstTest.FirstTestSample " />
  </classes>
  </test>
  </suite>
  
  testng.xml可以配置測試套件<suite>,類似于JUnit的TestSuite。而<test>類似于JUnit中的TestCase。所不同的是, TestNG中的測試套件可以包括多個測試用例,一個測試用例可以包括多個測試類,而一個測試類中可以定義多個測試方法。在下面的例子中,我們將看到這個配置文件更復雜的應用。
  
  在圖4的運行配置中,我們也可以設置一個xml文件作為配置文件,而不是直接使用測試類。其實我們使用測試類的時候,testNG也幫我們生成了一個缺省的xml文件。不相信的話,你可以切換到Resource Perspective,然后刷新Workspace,就會發現這個project里邊生成了一個xml文件,而這個文件就是TestNG的缺省的配置文件。
  
  現在我們再回到清單1,大家在上面的程序清單中會發現,除了使用@Test這個注釋以外,我們還使用了@Configuration這個注釋。下面我們就來介紹@Configuration這個注釋的用途。
  
  在注釋Configuration中,定義了以下的屬性:
  
  清單3 configuration中的屬性
  
  public boolean beforeSuite() default false;
  public boolean afterSuite() default false;
  
  public boolean beforeTest() default false;
  public boolean afterTest() default false;
  
  public boolean beforeTestClass() default false;
  public boolean afterTestClass() default false;
  
  public boolean beforeTestMethod() default false;
  public boolean afterTestMethod() default false;
  
  beforeSuite=true,所修飾的方法將在測試套件(也就是配置文件中的Suite Tag)中任何一個方法調用之前,調用一次
  afterSuite=true,所修飾的方法將在測試套件中所有方法都調用過后,調用一次
  beforeTest=true,在測試用例(配置文件中Test Tag)中任何一個測試方法調用之前,調用一次
  afterTest=true, 在測試用例中任何所有方法都調用之后,調用一次
  beforeTestClass=true,在測試類中任何測試方法調用之前,調用一次
  afterTestClass=true,在這個測試類中所有方法都調用過后,調用一次
  beforeTestMethod=true,在每個測試方法調用之前,調用一次
  afterTestMethod=true,在每個測試方法調用之后,調用一次
  這個清單1中doBeforeTests()方法,在任何一個test方法調用之前被調用一次。doAfterTests,就是所有的test方法運行過了以后再調用一次。從Console輸出的信息中,我們可以驗證這一點:
  
  圖6 console輸出的運行信息
  
Eclipse 3.1中用注釋單元測試框架(圖)(圖六)
點擊查看大圖

  回頁首
  
  更復雜的例子
  
  上一節中我們介紹了使用testNG的一個最簡單的例子,這一節中我們將介紹一些關于testNG的高級應用。注釋Test除了標志其修飾的方法為測試方法, 還提供了groups的屬性。比如上面例子的兩個方法testPass()和testFail(),我們可以給這兩個方法加上group的屬性。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av色在线| 色综合视频网站| 日韩不卡中文字幕| 8090理伦午夜在线电影| 夜夜躁日日躁狠狠久久88av| 色综久久综合桃花网| 亚洲精品www久久久久久广东| 欧美国产日韩一区| 粗暴蹂躏中文一区二区三区| 亚洲资源在线看| 亚洲精品电影在线| 国产精品一区二区3区| 国产亚洲美女精品久久久| 亚洲精品美女网站| 亚洲成年人在线播放| 久久久久久久一区二区| 日本不卡视频在线播放| 亚洲欧美一区二区三区四区| 91精品国产一区| 国产精品高潮呻吟久久av野狼| 久久视频在线看| 国内精品一区二区三区四区| 日韩国产欧美精品在线| 国产精品视频在线播放| 日本三级久久久| 久久的精品视频| 国内精品久久久久久久| 一区三区二区视频| 综合136福利视频在线| 九九综合九九综合| 日韩av在线网站| 国产精品久久国产精品99gif| 久久久久久久一区二区| 亚洲女人天堂色在线7777| 国产99久久精品一区二区| 成人性生交大片免费看小说| 国产精品久久久久国产a级| 亚洲精品美女久久久久| 欧美中文字幕第一页| 国产在线不卡精品| 2019日本中文字幕| 日韩少妇与小伙激情| 日韩视频在线观看免费| 国产日本欧美视频| 色噜噜狠狠色综合网图区| 欧美大胆a视频| 日韩av影片在线观看| 欧美国产日韩xxxxx| 欧美大片免费看| 成人网中文字幕| 永久555www成人免费| 色综合导航网站| 欧美成人在线影院| 日韩在线中文视频| 大量国产精品视频| 色久欧美在线视频观看| 欧美日韩国产综合视频在线观看中文| 亚洲欧美一区二区三区久久| 久久在线免费观看视频| 国产www精品| 亚洲女人天堂av| 高跟丝袜一区二区三区| 欧美成人三级视频网站| 日韩av电影国产| 欧美成人精品在线视频| 欧美在线不卡区| 国产一区二区三区三区在线观看| 91精品啪在线观看麻豆免费| 日韩成人在线观看| 日韩精品在线观看网站| 国产精品成人一区二区三区吃奶| 欧美激情亚洲综合一区| 亚洲欧美激情四射在线日| 日韩欧美在线视频观看| 综合国产在线观看| 国产欧美在线播放| 久久久久久久av| 亚洲国产天堂久久综合网| 欧洲日本亚洲国产区| 日韩激情在线视频| 久久久久五月天| 亚洲精品欧美一区二区三区| 国产精品久久久久久久久久久久久| 欧美综合在线观看| 2019中文字幕在线免费观看| 激情懂色av一区av二区av| 精品中文字幕在线观看| 亚洲天堂久久av| 欧美亚洲国产精品| 国产成人精品在线观看| 国产精品久久久久久久久久三级| 久久免费高清视频| 68精品国产免费久久久久久婷婷| www.日韩av.com| 亚洲国内精品视频| 欧美成年人视频网站欧美| 久久久黄色av| 日本久久久久亚洲中字幕| 亚洲bt欧美bt日本bt| 91免费版网站入口| 国产噜噜噜噜久久久久久久久| 国产精品免费久久久| 午夜精品久久久久久久99热浪潮| 亚洲免费视频在线观看| 搡老女人一区二区三区视频tv| 91免费综合在线| 中文字幕日韩欧美精品在线观看| 久热精品在线视频| 日韩欧美精品网站| 国产精品高潮呻吟久久av野狼| 国产精品亚洲一区二区三区| 久久99精品久久久久久琪琪| 中文字幕国产精品久久| 777精品视频| 欧美激情区在线播放| 欧美有码在线观看视频| 国自产精品手机在线观看视频| 国产欧美精品在线| 国产视频亚洲精品| 热久久这里只有| 亚洲一区久久久| 久久人人爽人人爽人人片av高清| 国产精品久久久久久久久久久久久久| 91九色精品视频| 日韩欧美a级成人黄色| 亚洲男女自偷自拍图片另类| 免费97视频在线精品国自产拍| 中文字幕国产亚洲2019| 中文字幕精品—区二区| 欧洲精品久久久| 亚洲精品一区在线观看香蕉| 97成人精品视频在线观看| 日韩av一区二区在线| 亚洲成人三级在线| 欧美日韩中文字幕综合视频| 久久久伊人日本| 7777精品视频| 欧美午夜精品在线| 欧美一级淫片aaaaaaa视频| 亚洲成av人片在线观看香蕉| 亚洲精品福利在线观看| 国产精品中文久久久久久久| 国产精品视频26uuu| 久久成人精品电影| 国产精品精品久久久久久| 亚洲欧美三级伦理| 欧美在线观看一区二区三区| 亚洲黄色av女优在线观看| 国产一区二区三区直播精品电影| 欧美激情奇米色| 欧美日产国产成人免费图片| 成人精品aaaa网站| 国产精品扒开腿做爽爽爽男男| 国产亚洲精品日韩| 在线精品国产成人综合| 久久久精品999| 青青草99啪国产免费| 精品久久久在线观看| 欧美精品久久久久久久久| 尤物九九久久国产精品的分类| 国产精品电影久久久久电影网| 亚洲欧洲一区二区三区在线观看| 亚洲国产精品推荐| 久久久999精品免费|