亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
JUnit 4與TestNG
作者:網絡轉載 發布時間:[ 2015/11/13 14:02:41 ] 推薦標簽:軟件測試工具 單元測試工具

  這兩天在看一本書《Java測試新技術TestNG和高級概念》,作者是 TestNG 的創始人,了解了不少關于 TestNG 的知識,看了一篇文章基本把這本書的幾個觀點都體現了,那我直接翻譯原文好,省得自己總結。這兩天要不是等原作者的授權的話可能本文發布了,沒經過人家許可翻譯人家文章應該的確也不是什么光彩的事情,等等無妨。原文鏈接JUnit 4 Vs TestNG – Comparison,非常感謝作者寫出好文,不過mkyong先生寫了的確好多文章,經常搜個文章 google 第一篇總是他的。如果有翻譯問題,請拍磚。
  ————————————————————————————————————————————
  Junit 4 和 TestNG 都是 Java 方面非常流行的單元測試框架。在功能上兩個框架都非常類似。到底哪個比較好?在Java項目中我們應該選擇哪個框架?
  下圖將會對Junit 4 和 TestNG 做個功能特征的對比。

  注解支持
  Junit 4 和 TestNG 在注解方面的實現非常相似。

  JUnit 4 和 TestNG 之間注解方面的區別主要有以下幾點:
  在Junit 4 中,如果我們需要在方法前面使用@BeforeClass和@AfterClass,那么該測試方法則必須是靜態方法。TestNG 在方法定義部分則更加的靈活,它不需要類似的約束。
  3個附加的setUp/tearDown級別:套件和分組(@Before/AfterSuite, @Before/AfterTest, @Before/AfterGroup)。想了解詳細的請看這里
  JUnit 4
  @BeforeClass
  public static void oneTimeSetUp() {
  // one-time initialization code
  System.out.println("@BeforeClass - oneTimeSetUp");
  }
  TestNG
  @BeforeClass
  public void oneTimeSetUp() {
  // one-time initialization code
  System.out.println("@BeforeClass - oneTimeSetUp");
  }
  在Junit 4中,注解的命名是比較令人困惑的,例如 Before, After and Expected,我們不是很確切的能理解在方法前面有Before和After這樣的注解是做什么的,同樣Expected也如此。TestNG在這方面做的好很多,注解使用了BeforeMethod,AfterMethod和ExpectedException,這樣的名字非常好理解了。
  異常測試
  異常測試的意思是在單元測試中應該拋出什么異常是合理的,這個特性在兩個框架都已經實現。
  JUnit 4
  @Test(expected = ArithmeticException.class)
  public void divisionWithException() {
  int i = 1/0;
  }
  TestNG
  @Test(expectedExceptions = ArithmeticException.class)
  public void divisionWithException() {
  int i = 1/0;
  }
  忽略測試
  忽略測試意思是在單元測試哪些是可以被忽略的,這個特性在兩個框架都已經實現。
  JUnit 4
  @Ignore("Not Ready to Run")
  @Test
  public void divisionWithException() {
  System.out.println("Method is not ready yet");
  }
  TestNG
  @Test(enabled=false)
  public void divisionWithException() {
  System.out.println("Method is not ready yet");
  }
  時間測試
  時間測試意思是如果一個單元測試運行的時間超過了一個指定的毫秒數,那么測試將終止并且標記為失敗的測試,這個特性在兩個框架都已經實現。
  JUnit 4
  @Test(timeout = 1000)
  public void infinity() {
  while (true);
  }
  TestNG
  @Test(timeOut = 1000)
  public void infinity() {
  while (true);
  }
  套件測試
  套件測試是把幾個單元測試組合成一個模塊,然后運行,這個特性兩個框架均已實現。然而卻是用了兩個不同的方式來實現的。
  JUnit 4
  @RunWith 和 @Suite注解被用于執行套件測試。下面的代碼是所展示的是在JunitTest5被執行之后需要JunitTest1 和 JunitTest2也一起執行。所有的聲明需要在類內部完成。
  @RunWith(Suite.class)
  @Suite.SuiteClasses({
  JunitTest1.class,
  JunitTest2.class
  })
  public class JunitTest5 {
  }
  TestNG
  執行套件測試是使用XML文件配置的方式來做。下面的 XML 的文件可以使得TestNGTest1和TestNGTest2一起執行。

上一頁12下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 中文字幕视频一区 | haose08永久免费视频 | 日本高清无卡码一区二区久久 | 精品久久久久香蕉网 | 中文字幕日韩高清版毛片 | h视频在线观看视频观看 | 中文字幕有码在线播放 | 97视频精品全国在线观看 | m男亚洲一区中文字幕 | 怡红院成人永久免费看 | 日韩影片在线观看 | 成人影院免费在线观看 | 一个人看www在线视频资源 | 国产乱人伦av在线a 国产乱人伦精品一区二区 国产乱人免费视频 | 9191精品国产费久久 | 中国国产一国产一级毛片视频 | 最好看免费中文字幕2019 | 中文字幕一区波多野结衣 | 欧美精品亚洲精品日韩 | 婷婷视频在线观看 | 国产福利在线小视频 | 国产麻豆一级在线观看 | 波多野结衣四虎精品影库 | 91看片片| 日本三级免费看 | 久久久96 | 97狠狠干 | 免费一级欧美在线观看视频片 | 欧美午夜在线播放 | 翁熄粗大好爽 | 丝袜tube hdxxtv| 色吧久久 | 激情综合网五月激情 | 国产精品欧美日韩一区二区 | 国产一级特黄a大片99 | 国产精品一区二区不卡 | 欧美日本亚洲国产一区二区 | 欧美一区二区三区视频在线 | 国产欧美日韩一区二区三区在线 | 日韩欧美亚洲香蕉七次郎 | 亚洲国产欧美91 |