<ruby id="h6500"><table id="h6500"></table></ruby>
    1. <ruby id="h6500"><video id="h6500"></video></ruby>
          1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>
            • 軟件測試技術(shù)
            • 軟件測試博客
            • 軟件測試視頻
            • 開(kāi)源軟件測試技術(shù)
            • 軟件測試論壇
            • 軟件測試沙龍
            • 軟件測試資料下載
            • 軟件測試雜志
            • 軟件測試人才招聘
              暫時(shí)沒(méi)有公告

            字號: | 推薦給好友 上一篇 | 下一篇

            開(kāi)源xUnit的C++單元測試框架

            發(fā)布: 2008-7-23 15:43 | 作者: 網(wǎng)絡(luò )轉載 | 來(lái)源: 網(wǎng)絡(luò )轉載 | 查看: 389次 | 進(jìn)入軟件測試論壇討論

            領(lǐng)測軟件測試網(wǎng)

            Google最近開(kāi)源了其基于xUnit的C++單元測試框架。項目開(kāi)發(fā)者Zhanyong Wan說(shuō)在Google內部已經(jīng)有數以千計的C++開(kāi)發(fā)者在使用該框架,并且已經(jīng)持續好幾年了。

            根據Google所述,此次發(fā)布的主要亮點(diǎn)體現在:

            Google Test是便攜式的:它可以通過(guò)不同版本的GCC和MSVC編譯器應用在多種平臺上(Linux、Windows、Mac OS X等等)。你甚至可以將它用于Windows CE和Symbian這樣的嵌入式系統中。很多平臺的構建工具和測試運行器都處在開(kāi)發(fā)當中,并且現在已經(jīng)有Linux的Autotools支持了。

            支持fatal和nonfatal斷言。在nonfatal失敗后測試還會(huì )繼續。這使得在一次單獨的編輯——編譯——測試周期中能發(fā)現并修復更多問(wèn)題。

            對常見(jiàn)的測試需求提供很多斷言,同時(shí)你也可以輕松地對不常見(jiàn)的情況定義新的斷言。

            在Linux上,你可以編寫(xiě)death tests以確保你的代碼在遇到期望的錯誤時(shí)崩潰。

            因為該框架基于流行的xUnit架構,所以如果你以前使用過(guò)該家族中的任何一個(gè)測試框架,那么就很容易掌握它。

            C++社區一直都覺(jué)得他們的單元測試工具不如Java和C#等其他現代語(yǔ)言的好,很多人還會(huì )問(wèn):“為什么還要用另一個(gè)工具?它有什么特別的?”。在其wiki的Faqs中,Googlers嘗試去解答這些問(wèn)題。他們說(shuō)他們并沒(méi)有宣稱(chēng)其工具要比現存的好,而僅僅是將對其工作有幫助的一些功能整合起來(lái)。從該站點(diǎn)上我們看到:

            我們希望這個(gè)列表能幫助你判定Google Test是否對你也有幫助:

            Google Test被設計為便攜式的。在很多STL類(lèi)型(如std::string及std::vector)無(wú)法編譯的地方它都能正常執行。它無(wú)需異;蛘逺TTI。所以,它能運行在Linux、Mac OS X、Windows及一些嵌入式操作系統上。

            事實(shí)證明Nonfatal斷言(EXPECT_*)可以節省大量時(shí)間,因為他們使得在一次單獨的編輯——編譯——測試周期中能報告多個(gè)失敗。

            編寫(xiě)可以生成信息的斷言非常簡(jiǎn)單:就用流(stream)語(yǔ)法來(lái)附加任何額外的信息就行,如ASSERT_EQ(5, Foo(i)) << " where i = " << i;。它不需要新的宏或者特殊的函數。

            Google Test自動(dòng)檢測你的測試,你如果想運行測試的話(huà)就無(wú)需列舉他們。

            沒(méi)有一個(gè)框架能預料到你所有的需求,因此Google Test提供了EXPECT_PRED*以方便地擴展你的斷言詞匯表。通過(guò)良好的語(yǔ)法,你可以使用EXPECT_PRED*來(lái)方便地定義你自己的斷言宏。

            Death tests非常方便,它能確保恰當的情況可以觸發(fā)你在產(chǎn)品中的斷言。

            當斷言失敗是來(lái)自于內部的過(guò)程或者循環(huán)時(shí),SCOPED_TRACE有助于你了解斷言失敗的上下文。

            你可以使用命名模式來(lái)決定運行哪些測試。當你想快速重現某個(gè)失敗時(shí)這會(huì )節省你大量時(shí)間。

            Saptarshi Purkayastha花了一些時(shí)間來(lái)調研該框架并在其博客上寫(xiě)了一些想法。他的反應是積極的。 

            該框架另一個(gè)讓人稱(chēng)道的地方就是學(xué)習其基礎與高級特性都是那么容易。它與xUnit非常像并且具備了可以與CppUnit抗衡的優(yōu)勢。你可以從這里學(xué)習基礎,從這里學(xué)習高級特性。Predicate Assertions可能是我最喜歡的特性之一了,當我們調試遇到麻煩時(shí)就可以在程序中使用該特性。還有很多其他的斷言,我們還沒(méi)有深入地研究他們。但是自從第一次看到該框架,我們很多人就將它作為最好的測試框架之一了...

            延伸閱讀

            文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/

            TAG: google Google linux Linux 單元測試 框架 xUnit


            關(guān)于領(lǐng)測軟件測試網(wǎng) | 領(lǐng)測軟件測試網(wǎng)合作伙伴 | 廣告服務(wù) | 投稿指南 | 聯(lián)系我們 | 網(wǎng)站地圖 | 友情鏈接
            版權所有(C) 2003-2010 TestAge(領(lǐng)測軟件測試網(wǎng))|領(lǐng)測國際科技(北京)有限公司|軟件測試工程師培訓網(wǎng) All Rights Reserved
            北京市海淀區中關(guān)村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
            技術(shù)支持和業(yè)務(wù)聯(lián)系:info@testage.com.cn 電話(huà):010-51297073

            軟件測試 | 領(lǐng)測國際ISTQBISTQB官網(wǎng)TMMiTMMi認證國際軟件測試工程師認證領(lǐng)測軟件測試網(wǎng)

            老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
              <ruby id="h6500"><table id="h6500"></table></ruby>
              1. <ruby id="h6500"><video id="h6500"></video></ruby>
                    1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>