當前位置:律師網大全 - 專利申請 - 單元測試的測試工具

單元測試的測試工具

現在來介紹單元測試工具,按照編程語言分組介紹。CppUnit

首先,C++單元測試工具的鼻祖CppUnit是壹個免費開源的單元測試框架。因為很多專家寫了很多關於CppUnit的好文章,老納現在也不醜了。如果妳想了解CppUnit,我建議看壹下Cpluser的《CppUnit測試框架介紹》。文章還提供了CppUnit的下載地址。

c++測試

然後介紹C++Test,這是Parasoft的壹個產品。C++test是壹款功能強大的自動化C/C++單元級測試工具,可以自動測試任何C/C++函數和類,自動生成測試用例、測試驅動函數或存根函數,在自動化環境下非常容易、快速地使單元級測試覆蓋率達到100%。【】中的文字引自,是華堂公司的網站。老納想寫壹些關於c++測試的文字,但是發現在華堂公司的網站上無法超越介紹,於是省去了壹些麻煩。想了解c++測試的朋友建議去公司網站看看。c++測試是華堂公司代理的。如果妳想購買或要求報價和試用版,妳可以聯系他們。

視覺單位

最後介紹了國內單元測試工具Visual Unit。據說申請了很多專利,有多項創新技術,但老納只關心是否有用,是否好用。測試代碼自動生成,功能測試用例快速建立,程序行為清晰,測試完整性高,高效完成白盒覆蓋,快速調試高效調試,測試報告詳細。[]中的文字摘自VU開發商網站。上面提到的測試需求:完成功能測試,完整的語句覆蓋,條件覆蓋,分支覆蓋,路徑覆蓋,使用VU就可以輕松實現。另外值得壹提的是,使用VU還可以提高編碼效率。壹般來說,在完成單元測試的同時,編碼調試的時間可以大大縮短。算了,我不想再談了。我還是有興趣炫耀我的理論,介紹我的經驗,因為可以滿足我當好老師的虛榮心,但是工具的介紹就沒意思了。畢竟工具好不好,要我試了才知道。我最好自己去開發者網站看看,可以下載演示版和演示課件。

gtest

Gtest測試框架是為在不同平臺(Linux、Mac OS X、Windows、Cygwin、Windows CE和Symbian)上編寫C++測試而生成的。它是壹個基於xUnit架構的測試框架,支持自動發現測試、豐富的斷言集、用戶自定義斷言、死亡測試、致命和非致命故障、類型參數化測試、運行測試的多種選項和XML測試報告。需要了解更多的朋友可以參考《玩轉Google單元測試框架gtest系列》壹文。朱尼特

JUnit是Java社區中最著名的單元測試工具。它誕生於1997,由埃裏希·伽馬和肯特·貝克開發。其中,Erich Gamma是經典著作《設計模式:可重用面向對象軟件基礎》的作者之壹,在Eclipse方面做出了巨大貢獻。Kent Beck是極限編程(XP)的專家和先驅。JUnit設計的很小,但是功能很強大。JUnit——開發源代碼的Java測試框架,用於編寫和運行可重復的測試。這是壹個用於xUnit測試(java語言)的框架系統的例子。主要用於白盒測試和回歸測試。

JUnit的好處和編寫JUnit單元測試的原則;

優點:測試代碼可以與產品代碼分離;壹個類的測試代碼可以應用到另壹個類的測試中,只需很少的修改;很容易集成到測試人員的構建過程中,JUnit和Ant的結合可以實現增量開發。JUnit是開源代碼,可以重新開發。JUnit很容易擴展;

編寫原則:簡化測試的編寫,包括測試框架的學習和實際測試單元的編寫;是保持測試單元的持久性;可以使用現有的測試來編寫相關的測試;

JUnit使用幫助。

版本1和junit3.x,我們壹般用junit 3.8。

(1),使用junit3.x版本3.x進行單元測試時,測試類必須從TestCase父類繼承;

(2)試驗方法應遵循的原則:

壹、公共

b,無效

c,沒有方法參數

方法名必須以test開頭。

(3)不同的測試用例必須是完全獨立的,並且不能有任何關聯。

(4)、要掌握測試方法的順序,不能依賴測試方法的執行順序。

圓頂:

公共類TestMyNumber擴展了TestCase {

私人MyNumber myNumber

public TestMyNumber(字符串名稱){

超級(名);

}

//它會在每個測試方法執行之前被調用。

@覆蓋

公共void設置()引發異常{

// System.out.println(歡迎使用Junit進行單元測試……);

my number = new my number();

}

//每個測試方法執行後,都會被調用。

@覆蓋

public void tearDown()引發異常{

// System.out.println(Junit單元測試結束…);

}

public void testDivideByZero() {

Throwable te = null

嘗試{

myNumber.divide(6,0);

Assert.fail(測試失敗);

} catch(異常e) {

e . printstacktrace();

te = e;

}

assert . assert equals(exception . class,te . getclass());

Assert.assertEquals(除數不能為0,te . getmessage());

}

}

2.junit4.x版本

(1),使用JUnit 4 . x版進行單元測試時,我們不需要test類繼承TestCase父類,因為JUnit 4 . x版完全引入了Annotation來執行我們編寫的測試。

(2)、junit4.x版本,引用註釋的方式,進行單元測試;

(3)、junit4.x版我們常用的註釋:

A.@Before註意:和junit3.x中setUp()方法的功能壹樣,在每個測試方法之前執行;

b、@After註意:和junit3.x中的tearDown()方法函數壹樣,在每個測試方法之後執行;

C.@BeforeClass註意:在所有方法執行之前執行;

d,@AfterClass註意:是在所有方法執行完之後執行;

e、@Test(timeout = xxx)註意:設置當前測試方法在壹定時間內運行,否則返回錯誤;

f,@Test(expected = Exception.class)註意:設置被測試的方法是否有異常拋出。拋出的異常類型為:Exception.class;

g,@Ignore comment:註釋掉壹個測試方法或類,被註釋的方法或類將不被執行。

圓頂:

包com . an . JUnit;

導入靜態org . JUnit . assert . *;

導入org . JUnit . after;

導入org . JUnit . after class;

導入org . JUnit . before;

導入org . JUnit . before class;

導入org . JUnit . test;

公共類TestMyNumber {

私人MyNumber myNumber

@BeforeClass

//在所有方法執行之前執行。

公共靜態void globalInit() {

System.out.println(init all方法...);

}

@課後

//執行完所有方法後執行。

public static void global destory(){

System.out.println(destory all方法...);

}

@以前

//在每個測試方法之前執行

公共void設置(){

System.out.println(啟動設置方法);

my number = new my number();

}

@之後

//在每個測試方法之後執行

公共void拆卸(){

System.out.println(end tearDown方法);

}

@Test(timeout=600)//設置受限測試方法的運行時間,超過則返回錯誤。

公共void testAdd() {

System.out.println(testAdd方法);

int result = myNumber.add(2,3);

assertEquals(5,結果);

}

@測試

public void testSubtract() {

system . out . println(test subtract方法);

int result = my number . subtract(1,2);

assertEquals(-1,結果);

}

@測試

public void testMultiply() {

system . out . println(test multiply方法);

int result = myNumber.multiply(2,3);

assertEquals(6,結果);

}

@測試

public void testDivide() {

System.out.println(testDivide方法);

int result = 0;

嘗試{

result = myNumber.divide(6,2);

} catch(異常e) {

fail();

}

assertEquals(3,結果);

}

@Test(預期= Exception.class)

public void testDivide2()引發異常{

System.out.println(testDivide2方法);

myNumber.divide(6,0);

失敗(測試錯誤);

}

公共靜態void main(String[] args) {

}

}

有興趣的朋友可以下來仔細研究壹下,或者去安安的DIY工坊博客壹起討論。

JUnit-addons

對JUnit的壹些補充,比如設置,獲取被測對象的私有屬性值,調用被測對象的私有方法等。

公共類:junitx.util.PrivateAccessor

Spring測試框架

您可以基於Spring測試應用程序,並通過配置文件和註釋自動組裝所需的單元測試對象。

提供了壹些常用的J2EE模擬對象,比如HttpSession的模擬類。

可以支持自動數據庫回滾,以防止單元測試(插入、刪除等。)被重復,並防止數據庫狀態被修改。

朱尼特

模擬對象是由代碼自動生成的,這使您不必手動編寫n個以上的模擬類。

此外,它的Eclipse插件還可以測試覆蓋率和分支統計。

EasyMock

功能和DJUnit壹樣,也是通過編程自動模擬出與測試對象無關的類和方法。

  • 上一篇:從地球上微生物的出現到人類的起源
  • 下一篇:50元以下的眼霜適合年輕人嗎?
  • copyright 2024律師網大全