成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解C++單元測試介紹

開發(fā) 后端
在準(zhǔn)標(biāo)準(zhǔn)C++單元測試中,有關(guān)缺省變量值的限制非常模糊。基于此,很多編譯器允許開發(fā)人員將缺省變量值包含在函數(shù)聲明,指向函數(shù)的指針和引用,成員函數(shù)的指針,以及typedef聲明中。

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

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

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

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

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

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

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

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

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

責(zé)任編輯:chenqingxiang 來源: 編程入門網(wǎng)
相關(guān)推薦

2011-07-04 18:16:42

單元測試

2009-09-01 16:45:00

C#單元測試工具

2022-08-05 09:30:57

單元測試C++

2023-07-26 08:58:45

Golang單元測試

2010-01-13 09:38:17

C++單元測試

2012-06-18 10:03:46

Visual Stud

2017-01-14 23:42:49

單元測試框架軟件測試

2014-04-24 13:43:37

CC++單元測試框架

2011-08-22 13:57:55

gtest

2023-12-24 10:00:35

Java單元測試

2010-01-12 16:12:47

C++單元測試

2017-01-16 12:12:29

單元測試JUnit

2017-01-14 23:26:17

單元測試JUnit測試

2009-09-01 16:35:16

C#單元測試

2010-08-27 09:11:27

Python單元測試

2020-08-18 08:10:02

單元測試Java

2022-04-27 08:17:07

OCMock單元測試集成

2017-03-23 16:02:10

Mock技術(shù)單元測試

2021-05-05 11:38:40

TestNGPowerMock單元測試

2020-05-07 17:30:49

開發(fā)iOS技術(shù)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 午夜影院在线观看 | 欧美日韩一区二区在线 | 久久99国产精一区二区三区 | 欧美精品一区在线 | 91亚洲精品国偷拍自产在线观看 | 九七午夜剧场福利写真 | 黄色毛片在线观看 | 99精品久久久国产一区二区三 | 伊人网综合在线观看 | 精品91久久 | 99久久精品国产一区二区三区 | 人人九九| 一区二区三区网站 | 全免费a级毛片免费看视频免 | 日日爽 | av黄色在线观看 | 久久久精品日本 | 国产农村妇女精品一区 | 日本精品一区二区三区在线观看视频 | 天堂一区二区三区 | 国产欧美一区二区三区在线播放 | 国产精品久久久久久久久久久免费看 | 成人h动漫精品一区二区器材 | 日本国产欧美 | 一区二区三区在线看 | 精品国产青草久久久久福利 | 91精品国产综合久久婷婷香蕉 | 91社区在线观看高清 | 狠狠色狠狠色综合系列 | 亚洲精品九九 | 一级在线毛片 | 亚洲啊v在线 | 99久久影院 | 中文字幕亚洲区 | 欧美精品久久 | 国产 日韩 欧美 在线 | 日韩一区二区在线视频 | 香蕉国产在线视频 | h视频在线免费看 | 欧美成人一区二区三区 | 免费一看一级毛片 |