• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 追求代碼質量: JUnit 4 與 TestNG 的對比

    發表于:2008-06-23來源:作者:點擊數: 標簽:代碼質量junitJunitJUnit
    經過長時間積極的 開發 之后,JUnit 4.0 于今年年初發布了。JUnit 框架的某些最有趣的更改 —— 特別是對于本專欄的讀者來說 —— 正是通過巧妙地使用注釋實現的。除外觀和風格方面的顯著改進外,新框架的特性使 測試用例 的編制從結構規則中解放出來。使原

    經過長時間積極的開發之后,JUnit 4.0 于今年年初發布了。JUnit 框架的某些最有趣的更改 —— 特別是對于本專欄的讀者來說 —— 正是通過巧妙地使用注釋實現的。除外觀和風格方面的顯著改進外,新框架的特性使測試用例的編制從結構規則中解放出來。使原來僵化的 fixture 模型更為靈活,有利于采取可配置程度更高的方法。因此,JUnit 框架不再強求把每一項測試工作定義為一個名稱以 test 開始的方法,并且現在可以只運行一次 fixture,而不是每次測試都需要運行一次。

    雖然這些改變令人欣慰,但 JUnit 4 并不是第一個提供基于注釋的靈活模型的 Java™ 測試框架。在修改 JUnit 之前很久,TestNG 就已建立為一個基于注釋的框架。

    事實上,是 TestNG 在 Java 編程中率先 實現了利用注釋進行測試,這使它成為 JUnit 的有力競爭對手。然而,自從 JUnit 4 發布后,很多開發者質疑:二者之間還有什么差別嗎?在本月的專欄中,我將討論 TestNG 不同于 JUnit 4 的一些特性,并提議采用一些方法,使得這兩個框架能繼續互相補充,而不是互相競爭。

    您知道嗎?

    在 Ant 中運行 JUnit 4 測試比預計的要難得多。事實上,一些團隊已發現,惟一的解決方法是升級到 Ant 1.7。

    表面上的相似

    JUnit 4 和 TestNG 有一些共同的重要特性。這兩個框架都讓測試工作簡單得令人吃驚(和愉快),給測試工作帶來了便利。二者也都擁有活躍的社區,為主動開發提供支持,同時生成豐富的文檔。

    提高代碼質量

    要找到您最迫切問題的答案,請不要錯過 Andrew 的 論壇。

    兩個框架的不同在于核心設計。JUnit 一直 是一個單元測試框架,也就是說,其構建目的是促進單個對象的測試,它確實能夠極其有效地完成此類任務。而 TestNG 則是用來解決更高 級別的測試問題,因此,它具有 JUnit 中所沒有的一些特性。

    一個簡單的測試用例

    初看起來,JUnit 4 和 TestNG 中實現的測試非常相似。為了更好地理解我的意思,請看一下清單 1 中的代碼。這是一個 JUnit 4 測試,它有一個 macro-fixture(即僅在所有測試運行前調用一次的 fixture),這個 macro-fixture 由 @BeforeClass 屬性表示:


    清單 1. 一個簡單的 JUnit 4 測試用例

    package test.com.acme.dona.dep;
    
    import static org.junit.Assert.assertEquals;
    import static org.junit.Assert.assertNotNull;
    import org.junit.BeforeClass;
    import org.junit.Test;
    
    public class DependencyFinderTest {
     private static DependencyFinder finder;
    
     @BeforeClass
     public static void init() throws Exception {
      finder = new DependencyFinder();
     }
    
     @Test
     public void verifyDependencies() 
      throws Exception {
       String targetClss = 
         "test.com.acme.dona.dep.DependencyFind";
    
       Filter[] filtr = new Filter[] { 
          new RegexPackageFilter("java|junit|org")};

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>