當前位置:首頁 » 操作系統 » junit源碼

junit源碼

發布時間: 2024-01-06 10:18:55

❶ Junit4中怎樣隨心所欲的執行Test

使用的是junit4.4,想要有選擇性的執行TestCase中的Test,是需要自己擴展junit4.4的API的。junit4.8的版本中,加入了一個Runner:Categories,可以實現只跑特定分類的Test。現在通過代碼舉例來比較兩個版本中批量執行Test的差別.
public class TestOne {

@Test
public void testOne1(){
System.out.println("TestOne 1");
}

@Category({RunCases.class}) ----Junit4.8中才有的註解
@Test
public void testOne2(){
System.out.println("TestOne 2");
}
}
public class TestTwo {

@Test
public void testTwo1(){
System.out.println("TestTwo 1");
}

@Category(RunCases.class) ----Junit4.8中才並襪有的註解
@Test
public void testTwo2(){
System.out.println("TestTwo 2");
}
}
junit4.4中,使用Suite批量執行Test: TestOne.class,TestTwo.class中的Test會全部被執行,實現如下:
@RunWith(Suite.class)
@SuiteClasses({
TestOne.class,
TestTwo.class})
public class AllTestCases {
}
junit4.8中,使用Categories批量執行Test:可以有選擇的執行SuiteClasses中的部分Test,實現如下:
在TestCase的Test前加上@Category(RunCases.class) 註解,RunCases.class是自定義分類類型(可以是class,也可以是interface,名稱沒有特殊要求);
public class RunCases {
}

public interface RunCases{
}
然後,我們使用@Runwith來指定使用絕岩激Categories測試引擎,並且使用@IncludeCategory或@ExcludeCategory指定哪些測試用例被執行:
@RunWith(Categories.class)
@IncludeCategory(RunCases.class)
@SuiteClasses({TestOne.class,TestTwo.class})
public class TestPartExcute {
}
執行結果:
TestOne 2
TestTwo 2

@RunWith(Categories.class)
@ExcludeCategory(RunCases.class)
@SuiteClasses({TestOne.class,TestTwo.class})
public class TestPartExcute {
}
執行結果:
TestOne 1
TestTwo 1
注意事項說明:
1.@Category({RunCases.class}) 註解用在測試用例類上,並不能生效;
2.可以定義多個分類類型,在@Category註解中,可以使用多個分類類型,eg:@Category({A.class,B.class});
3.@IncludeCategory或@ExcludeCategory註解中出現的類型,必須在@Category註解中出現過,否則執行會報錯。

附帶:Junit4各版本新特性匯總
Junit源碼(github)地址:git://github.com/KentBeck/junit.git

JUnit 4.4
主要提供了以下棗棗三個大方面的新特性來更好的抓住編程人員的代碼意圖:
1.提供了新的斷言語法(Assertion syntax)——assertThat
2.提供了假設機制(Assumption)
3.提供了理論機制(Theory)
JUnit 4.5
Runner實現發生了較大改變,廢棄了原來的JUnit4ClassRunner,改用BlockJUnit4ClassRunner替代。新的runner機制更容易擴展和重用,可在測試執行流程中方便的切入加入新的特性。
JUnit 4.6
該版本提升了核心的體系結構,允許對測試進行重新排序以及並行處理等。
Junit 4.7
該版本增加了一個重要的新特性:Rule,同時添加了很多核心Rule:
TemporaryFolder:測試可以創建文件與目錄並且會在測試運行結束後將其刪除。這對於那些與文件系統打交道且獨立運行的測試來說很有用。
ExternalResource:這是一種資源使用模式,它會提前建立好資源並且會在測試結束後將其銷毀。這對於那些使用socket、嵌入式伺服器等資源的測試來說很有用。
ErrorCollector:可以讓測試在失敗後繼續運行並在測試結束時報告所有錯誤。這對於那些需要驗證大量獨立條件的測試來說很有用(盡管這本身可能是個「test smell」)。
ExpectedException:可以在測試中指定期望的異常類型與消息。
Timeout:為類中的所有測試應用相同的超時時間。
Junit 4.8
加入了一個Runner:Categories,可以只跑特定分類的測試用例。
Junit 4.9
Test-class and suite level Rules。
Maven support
Junit 4.10
The RuleChain rule allows ordering of TestRules。

java中框架Junit應該怎麼使用

JUnit

JUnit是由 Erich Gamma 和 Kent Beck 編寫的一個回歸測試框架(regression testing framework)。Junit測試是程序員測試,即所謂白盒測試,因為程序員知道被測試的軟體如何(How)完成功能和完成什麼樣(What)的功能。Junit是一套框架,繼承TestCase類,就可以用Junit進行自動測試了。
更多JUnit信息

Cactus

Cactus是一個基於JUnit框架的簡單測試框架,用來單元測試服務端Java代碼。Cactus框架的主要目標是能夠單元測試服務端的使用Servlet對象的Java方法如HttpServletRequest,HttpServletResponse,HttpSession等
更多Cactus 信息

Abbot

Abbot是一個用來測試Java GUIs的框架。用簡單的基於XML的腳本或者Java代碼,你就可以開始一個GUI。
更多Abbot信息

JUnitPerf

Junitperf實際是junit的一個decorator,通過編寫用於junitperf的單元測試,我們也可使測試過程自動化。
更多JUnitPerf信息

DbUnit

DbUnit是為資料庫驅動的項目迅仔提供的一個對JUnit 的擴展,除了提供一些常用功能,它可以將你的資料庫置於一個測試輪回之間的狀態。
更多DbUnit信息

Mockrunner

Mockrunner用在J2EE環境中進行應用程序的單元測試。它不僅支持Struts actions, servlets,過濾器和標簽類還包括一個JDBC和一個JMS測試框架,可以用於測試基於EJB的應用程序。
更多Mockrunner信息

DBMonster

DBMonster是一個用生成隨機數據來測試SQL資料庫的壓力測試工具。
更多DBMonster信息

MockEJB

MockEJB是一個不需要EJB容器就能運行EJB並進行測試的輕量級框架。
更多MockEJB信息

StrutsTestCase

StrutsTestCase 是Junit TestCase類的擴展,提供基於Struts框架的代碼測試。StrutsTestCase同時提供Mock 對象方法和Cactus方法用來實際運行Struts ActionServlet,你可以通過運行servlet引擎來測試。因為StrutsTestCase使畝仔汪用ActionServlet控制器來測試你的代碼,因此你不僅可以測試Action對象的實現,而且可以測試mappings,from beans以及forwards聲明。StrutsTestCase不啟動servlet容器來測試struts應用程序(容器外測試)也屬於Mock對象測試,但是與EasyMock不同的是,EasyMock是提供了創建Mock對象的API,而StrutsTest則是專門負責測試Struts應用程序的Mock對象測試框架。
更多StrutsTestCase信息

JFCUnit

JFCUnit使得你能夠為Java偏移應用程序編寫測試例子。它為從用代碼打開的窗口上獲得句柄提供了支持;為在一個部件層次定位部件提供支持;為在部件中發起事件(例如按一個按鈕)以及以線程安全方式處理部件測試提供支持。
更多JFCUnit信息

JTestCase

JTestCase 使用XML文件來組織多測試案例數據,聲明條件(操作和期望的結果),提供了一套易於使用的方法來檢索XML中的測試案例,按照數據文件的定義來聲明結果。
更多JTestCase信息

SQLUnit

SQLUnit是一個單元測試框架,用於對資料庫存儲過程進行加歸測試。用 Java/JUnit/XML開發。
更多SQLUnit信息

JTR

JTR (Java Test Runner)是一個開源的基於反轉控制(IOC)的J2EE測試框架。它允許你構建復雜的J2EE測試套件(Test Suites)並連到應用伺服器執行測試,可以包括多個測戚嫌試實例。JTR的licensed是GPL協議。
更多JTR信息

Marathon

Marathon是一個針對使用Java/Swing開發GUI應用程序的測試框架,它由recorder, runner 和 editor組成,測試腳本是python代碼。Marathon的焦點是放在最終用戶的測試上。
更多Marathon信息

TestNG

TestNG是根據JUnit 和 NUnit思想而構建的一個測試框架,但是TestNG增加了許多新的功能使得它變得更加強大與容易使用比如:
*支持JSR 175注釋(JDK 1.4利用JavaDoc注釋同樣也支持)
*靈活的Test配置
*支持默認的runtime和logging JDK功能
*強大的執行模型(不再TestSuite)
*支持獨立的測試方法。
更多TestNG信息

Surrogate Test framework

Surrogate Test framework是一個值得稱贊單元測試框架,特別適合於大型,復雜Java系統的單元測試。這個框架能與JUnit,MockEJB和各種支持模擬對象(mock object )的測試工具無縫給合。這個框架基於AspectJ技術。
更多Surrogate Test framework信息

MockCreator

MockCreator可以為給定的interface或class生成模擬對象(Mock object)的源碼。
更多MockCreator信息

jMock

jMock利用mock objects思想來對Java code進行測試。jMock具有以下特點:容易擴展,讓你快速簡單地定義mock objects,因此不必打破程序間的關聯,讓你定義靈活的超越對象之間交互作用而帶來測試局限,減少你測試地脆弱性。
更多jMock信息

EasyMock

EasyMock為Mock Objects提供介面並在JUnit測試中利用Java的proxy設計模式生成它們的實例。EasyMock最適合於測試驅動開發。
更多EasyMock信息

Grinder

Grinder是一個開源的Java負載測試框架,它通過很多負載注射器來為分布式測試提供了便利。
支持用於執行測試腳本的Jython腳本引擎
HTTP測試可通過HTTP代理進行管理。
更多Grinder信息

XMLUnit

XMLUnit不僅有Java版本的還有.Net版本的。Java開發的XMLUnit提供了兩個JUnit 擴展類XMLAssert和XMLTestCase,和一組支持的類。這些類可以用來比較兩張XML之間的不同之處,展示XML利用XSLT來,校驗XML,求得XPath表達式在XML中的值,遍歷XML中的某一節點利DOM展開,
更多XMLUnit信息

Jameleon

Jameleon一個自動化測試工具。它被用來測試各種各樣的應用程序,所以它被設計成插件模式。為了使整個測試過程變得簡單Jameleon提供了一個GUI,因此Jameleon實現了一個Swing 插件。
更多Jameleon信息

J2MEUnit

J2MEUnit是應用在J2ME應用程序的一個單元測試框架。它基於JUnit.
更多J2MEUnit信息

Jetif

Jetif是一個用純Java實現的回歸測試框架。它為Java程序單元測試以及功能測試提供了一個簡單而且可 伸縮的架構,可以用於個人開發或企業級開發的測試。它容易使用,功能強大,而且擁有一些企業級測試的 重要功能。Jetif來源於JUnit, JTestCase以及TestNG的啟發,有幾個基本的概念直接來自於JUnit, 比如說斷言機制,Test Listener的概念,因此從JUnit轉到Jetif是非常容易的。
更多Jetif信息

GroboUtils

GroboUtils使得擴展Java測試變得可能。它包括用在Java不同方面測試的多個子項目。在GroboUtils中最常被到的工具是:多線程測試(multi-threaded tests),整體單元測試(hierarchial unit tests),代碼覆蓋工具(code coverage tool)。
更多GroboUtils信息

Testare

TESTARE是用來簡化分布式應用程序(比如:在SERVLETS,JMS listeners, CORBA ORBs或RMI環境下)測試開發過程的一個測試框架.
更多Testare信息

MockLib

MockLib是一個很小的包所以可容易地動態創建一個模擬對象.你可以從模擬的系統中拋出異常來確保你的系統能夠正確處理錯誤.它同樣也是一個線程安全的模擬對象庫.
更多MockLib信息

JellyUnit

JellyUnit是一個基於Jelly的JUnit測試機制.它允許用Jelly腳本來完成單元測試.尤其是對於XML,XPath,SQL,HTTP,JMS和SOAP交互的測試特別有用.
更多JellyUnit信息

Pisces

這個項目繼承於JUnit目的是提供一個分布式的測試環境.它給開發者/測試人員一個運行遠程JUnits和復雜測試案例的能力,這個案例由幾個並行運行的遠程JUnit測試組成。
更多Pisces信息

JUnitEE

JUnitEE是對JUnit的一個簡單擴展,可以支持在一個J2EE應用程序伺服器上執行標準的測試案例。它主要由一個把測試結果輸出為html的servlet組成。
更多JUnitEE信息

❸ JUNIT測試簡單三角形的代碼-Java

第一:此內容屬於Junit4進行參數化測試,由於需要指定運行器問題,其中一種方法是新建一兄塌嫌 個類

第二:在羨手你源代碼上加上列印語句,方便測試,比如

熱點內容
c語言演算法結構 發布:2024-11-29 07:23:08 瀏覽:222
空氣壓縮呼吸 發布:2024-11-29 07:23:00 瀏覽:56
百望雲伺服器設備編號必填 發布:2024-11-29 07:13:50 瀏覽:33
安卓手機想不起來密碼怎麼格式化 發布:2024-11-29 07:13:08 瀏覽:552
防止sql注入net 發布:2024-11-29 07:12:18 瀏覽:206
三菱可編程式控制制器手冊 發布:2024-11-29 07:09:28 瀏覽:245
帶鋼演算法 發布:2024-11-29 06:57:49 瀏覽:52
python外包 發布:2024-11-29 06:49:11 瀏覽:425
怎麼用安卓手機查蘋果的序列號 發布:2024-11-29 06:21:08 瀏覽:508
r11s原始密碼是多少 發布:2024-11-29 05:52:20 瀏覽:79