日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
詳解C++單元測試介紹

下面詳細說明,C++單元測試不支持reflection,所以,必須要做一些額外的工作,讓框架知道相關內(nèi)容的存在。CppUnit的做法是用宏進行注冊。這種做法要求我們每添加一個測試,就要考慮用相應的宏進行注冊。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設,石柱土家族企業(yè)網(wǎng)站建設,石柱土家族品牌網(wǎng)站建設,網(wǎng)站定制,石柱土家族網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,石柱土家族網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

在這點上,CxxTest做得要好一些,有一個專門的腳本做這件事。通過這個腳本掃描這個自己編寫的文件,生成一些新的文件,完成這個工作。從代碼的表現(xiàn)力和可靠度來說,要好得多。

唯一的問題是引入了一個腳本,而且這個腳本一般是由某些動態(tài)語言寫成的(目前的CxxTest有Perl和Python的腳本),從而引入了對這種語言的依賴。不過,由于C++語言本身的限制,從接口的角度來看,這種做法已經(jīng)很不錯了。

語法
有一種C++單元測試框架叫TUT,Template Unit Test的縮寫。顧名思義,它是用模板完成的(其實,CppUnit和CxxTest都有模板的部分)。隨著C++編譯器的進步,在大多數(shù)情況下,模板都是可以順利通過編譯的。

但是,不要忘了,還有一種環(huán)境叫嵌入式,那里的編譯器基本上還是很原始的,模板并不見得能夠順利的通過編譯。此外,模板還會帶來另外一個問題,編譯時間的增長,相信有過模板編程經(jīng)驗的人都會對此深有體會。編譯時間增長意味著什么?我們接下來討論。#t#

編譯時間
有一種敏捷實踐叫做測試驅(qū)動開發(fā)(Test Driven Development)。測試驅(qū)動開發(fā)的基礎是單元測試。測試驅(qū)動開發(fā)希望達成的一個目標是快速反饋,所以,站在C++語言的角度,如果執(zhí)行時間受限于代碼本身無法縮短,那么我們希望編譯時間盡可能短,這樣,才不會把生命都浪費在等待代碼編譯上。

除了剛才提到的模板問題之外,CppUnit會把所有測試編譯生成一個可執(zhí)行文件,這意味著什么?幾乎修改任何一個文件都會造成這個文件的重新生成。隨著目標文件的增加,這個過程時間就會增長。相對于修改范圍(可能只是某一個文件)。

是顯得有些長了。為什么Java語言不會存在這種現(xiàn)象?因為Java是動態(tài)連接的,所以,Java生成.class就結(jié)束了。對應到C++上,這只是完成了目標文件的生成,而在C++我們不得不再進一步生成可執(zhí)行文件。

從道理上,C++單元測試可以為不同的測試文件生成不同的可執(zhí)行文件,不過這么做又少了總體的過程,統(tǒng)計起來又顯得心有余力不足了,而且通常不會這么做。個人而言,對這幾個單元測試框架都不是非常了解,如果前面的討論存在謬誤,歡迎有識之士指出。


分享題目:詳解C++單元測試介紹
網(wǎng)站URL:http://www.dlmjj.cn/article/djejosd.html