junit-testng-zhao

JUnit 4 與 TestNG 的對比

http://www.ibm.com/developerworks/cn/java/j-cq08296/html

http://blog.csdn.net/jmyue/article/details/9041357java

http://www.importnew.com/16270.html數據庫

 

TestNGJUnit的相同點:框架

       1. 使用annotation,且大部分annotation相同。eclipse

       2. 均可以進行單元測試(Unit test)。yii

       3. 都是針對Java測試的工具。socket

TestNGJUnit的不一樣點:ide

      1. JUnit只能進行單元測試,TestNG能夠進行單元測試,功能測試,端到端測試,集成測試等。函數

      2. TestNG須要一個額外的xml配置文件,配置測試的classmethod甚至package工具

      3. TestNG的運行方式更加靈活:命令行、antIDEJUnit只能使用IDE

      4. TestNGannotation更加豐富,好比@ExpectedExceptions@DataProvider等。

      5. 測試套件運行失敗,JUnit 4會從新運行整個測試套件。TestNG運行失敗時,會建立一個XML文件說明失敗的測試,利用這個文件執行程序,就不會重複運行已經成功的測試。

 

  • 一個簡單的測試用例

JUnit 中我必須把@BeforeClass 修飾的方法聲明爲 static,這又要求我把 fixture,即 finder 聲明爲 static。我還必須把 init() 聲明爲 publicTestNG,您就會發現不一樣。這裏再也不須要那些規則了。個人 init() 方法既不是 static,也不是 public

  • 依賴性測試

JUnit 框架想達到的一個目標就是測試隔離。它的缺點是:人們很難肯定測試用例執行的順序,而這對於任何類型的依賴性測試都很是重要。開發者們使用了多種技術來解決這個問題,例如,按字母順序指定測試用例,或是更多地依靠 fixture 來適當地解決問題。

JUnit 不一樣,TestNG 利用 Test 註釋的 dependsOnMethods 屬性來應對測試的依賴性問題。有了這個便利的特性,就能夠輕鬆指定依賴方法。例如,前面所說的登陸將在某個方法以前 運行。此外,若是依賴方法失敗,它將被跳過,而不是標記爲失敗。

一旦 TestNG 中出現失敗,它就會建立一個 XML 配置文件,對失敗的測試加以說明。若是利用這個文件執行 TestNG 運行程序,TestNG 運行失敗的測試。

  • 參數化測試

經過在 TestNG XML 配置文件中放入參數化數據,就能夠對不一樣的數據集重用同一個測試用例,甚至有可能會獲得不一樣的結果。這種技術完美地避免了只能 假定一切正常的測試,或是沒有對邊界進行有效驗證的狀況。

  • 高級參數化測試

儘管從一個 XML 文件中抽取數據會很方便,但偶爾會有些測試須要有複雜類型,這些類型沒法用 String 或原語值來表示。TestNG 能夠經過它的 @DataProvider 註釋處理這樣的狀況。@DataProvider 註釋能夠方便地把複雜參數類型映射到某個測試方法。

Junit

  • 如何生成測試代碼

  • 運行
  • 運行所有

  • 運行單個方法

  • 生成測試報告(xml形式)

http://blog.sina.com.cn/s/blog_8af106960102v6qh.html

https://www.ibm.com/developerworks/cn/java/j-lo-junit4/

能夠生成html形式可是試驗沒有成功

 

  • Junit測試
  • JUnit中按照順序執行測試方式
     

http://www.cnblogs.com/nexiyi/p/junit_test_in_order.html

寫了一堆的test case,但願某一些test case必須在某個test case以後執行。好比,測試某一個Dao代碼,但願添加的case在最前面,而後是修改或者查詢,最後纔是刪除,之前的作法把全部的方法都集中到某一個方法去執行,一個個羅列好,比較麻煩。比較幸福的事情就是JUnit4.11以後提供了MethodSorters,能夠有三種方式對test執行順序進行指定

 

  • 平臺可以生成測試所須要的初始化和清理方法

https://netbeans.org/kb/docs/java/junit-intro_zh_CN.html#Exercise_31

  • 測試類初始化程序。@BeforeClass 標註將方法標記爲測試類初始化方法。測試類初始化方法只能運行一次,而且在測試類中的任何其餘方法以前運行。舉例來講,您沒必要在測試初始化函數中建立數據庫鏈接並在各測試方法以前建立新鏈接,您能夠在運行測試以前使用測試類初始化函數打開鏈接。而後,您可使用測試類終結方法來關閉鏈接。
  • 測試類終結方法。@AfterClass 標註將方法標記爲測試類終結方法。測試類終結方法只能運行一次,而且在測試類中的任何其餘方法完成以後運行。
  • 測試初始化程序。@Before 標註將方法標記爲測試初始化方法。測試初始化方法在測試類中的各測試用例以前運行。運行測試不須要測試初始化方法,可是,若是您須要在運行測試以前初始化一些變量,則可使用測試初始化方法。
  • 測試終結方法。@After 標註將方法標記爲測試終結方法。測試終結方法在測試類中的各測試用例以後運行。運行測試不須要測試終結方法,可是,您可能須要使用終結方法來清理運行測試用例時所需的任何數據。
    • !平臺自動生成的代碼可以指定測試用例間依賴關係

    JUnit 框架主要聚焦於測試的隔離,暫時還不支持這個特性。

    http://blog.csdn.net/lhy_ycu/article/details/45281449

    基於Junit3.8Junit4.x的單元測試詳解

    注意事項:
    1
    Junit的原則:keep the bar green to keep the code clean2)測試類與(源代碼)目標類的包名儘可能要一致,最終它們都會被編譯到同一個目錄下面,這樣就不用導入源代碼所在的包。
    3)
    測試類的命名規則:測試類類名 = 目標類類名前或後加Test; 注意要統一。
    4)
    測試類必須繼承TestCase; 測試用例(方法/)與測試用例之間必定是徹底獨立的,不容許出現任何的依賴關係。同時也不能依賴測試方法的執行順序,也就是刪除或註釋掉某個測試方法後,其餘的測試方法依然可以執行。
    5)
    測試源代碼的私有方法能夠採起兩種方式:1、修改目標方法的訪問修飾符(private修改成public,通常不推薦);2、使用反射在測試類中調用目標類的私有方法。

     

    • Junit不須要插件安裝

    Testng

    官網地址

    http://testng.org/doc/index.html

     

    TestNG for Eclipse 插件安裝
    • 第一種

     

     

    • 第二種

    地址輸入

    testng - http://beust.com/eclipse

    如何找到該地址

     

     

    TestNG for Eclipse 插件源碼

    Testng教程

    http://www.yiibai.com/testng/20130913292.html

    testng_eclipse使用教程

    http://testng.org/doc/eclipse.html#eclipse-viewing

    http://www.ibm.com/developerworks/cn/java/j-test-ng/

    http://www.ibm.com/developerworks/cn/java/j-testng/index.html 包含測試代碼連接

     

    testing插件進行測試問題以及解決

    Software caused connection abort: socket write error

    解決從新安裝testng插件或者更換eclipse

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息