JUnit和單元測試入門簡介[4] 單元測試工具
comparision fixture:這個也是比較少用的東東。
custom fixture:這個是自定義設置。只是生成一個框架。
junitx.framework包主要功能
該包以類方法的方式擴展junit.framework.Assert的功能。
也就是這時候,可以不用繼承相應的類,可以直接使用斷言的相關的功能。事實上基于元數據的測試框架都基本采用這種方式實現斷言。
junitx.framework.Assert
junitx.framework.ArrayAssert
junitx.framework.ComparableAssert
junitx.framework.FileAssert
junitx.framework.ListAssert
junitx.framework.ObjectAssert
junitx.framework.NamingAssert
junitx.framework.OrderedTestSuite
junitx.framework.StringAssert
junitx.framework.ThrowableAssert
2. 測試類的私有屬性
2.1 測試類的私有屬性的實現
使用相關類(junitx.util.PrivateAclearcase/" target="_blank" >ccessor)的方法類訪問私有屬性和方法。
參考:
ExampleJUnit_Addons_Exampleexample1目錄下
example1.TestAccount類
example1.Account類
2.2 實現訪問類的屬性和方法的原理
利用Java的反射機制來實現的。
l 使用java.lang.Class的相關方法,獲得相關指定對象的Field,然后調用
field.setAccessible(true);繞過訪問權限的檢查,然后可以訪問Field的值,當然
也可以設置Field的值。
l 使用java.lang.Class的相關方法,獲得相關指定對象的Method;然后調用
field.setAccessible(true);繞過訪問權限的檢查;最后執行該方法.
3. junitx.extensions包主要功能
使用了模板方法模式,定義抽象類,把相關的測試方法給出具體實現,把被測試對象的創建放到基本方法中。
原文轉自:http://www.anti-gravitydesign.com