單元測試 - 關於c++測試的一些和程式碼組織相關的問題
ringa_lee
ringa_lee 2017-05-31 10:38:53
0
1
899

我是一個c 新手程式設計師,之前大多數時候在用javascript,現在由於作業需要,我在用c 寫一個project,開發環境是Xcode,我想自己做測試,但是對測試相關之前一無所有所知,看了這個決定用catch這個測試框架。

之前在寫c 小作業的時候,要嘛是直接在main函數中cout<<等到提交之前再刪掉,或者就新建一個cpp文件,加入上main函數,然後再把專案中的main函數臨時改名(一般我是把main函數名改成main00之類的),點擊XCode的運行臨時測試一下,主要是出於對某一個地方的不確定性進行測試,等測試完了再改回來。

但我覺得以上所列的方式實在是蠢,讓各位前輩見笑了。

現在我的專案目錄是這樣的(這是用c 實作minisql的作業):

#目前各個檔案其實都是沒有什麼內容的,每一個資料夾代表一個模組,各個模組關係如下:

#我打算寫一個部分測一個部分(例如先寫BufferManager),測試沒有問題了繼續寫下一個部分。

所以我現在關於測試文件的組織有以下幾個問題:

我是應該把測試檔放在對應的模組檔目錄下呢?還是單獨有測試文件?

各個模組是不是應該單獨一個測試檔?

另外我發現我寫兩個測試檔的話,就算我註解掉#define CATCH_CONFIG_MAIN這個還是無法正常執行,除非把別的測試檔都註解掉。

另外等我寫好了入口檔(NewSQL.cpp中有一個main函式),那該怎麼執行這些測試檔?還是不斷的註解和取消註解....

感覺自己問的問題有點太笨了,但我的確非常想知道正確的測試寫法和使用是如何的,網上沒有找到非常有針對性的答案,特來詢問,謝謝~

(如果您覺得哪裡做得不好,請指出來我會認真改正,但是請不要人身攻擊,如果您的答案非常有參考價值,我也會私信您詢問是否需要一定的紅包報酬,學生黨,聊表心意)

附catch傳送門: https://github.com/philsquare...

ringa_lee
ringa_lee

ringa_lee

全部回覆(1)
给我你的怀抱

我是應該把測試檔放在對應的模組檔目錄下呢?還是單獨有測試文件?

各個模組是不是應該單獨一個測試檔?

另外我發現我寫兩個測試文件的話,就算我註解掉#define
CATCH_CONFIG_MAIN這個還是無法正常運行,除非把別的測試文件都註解掉。

另外等我寫好了入口檔(NewSQL.cpp中有一個main函式),那該怎麼執行這些測試檔?還是不斷的註釋和取消註釋....

測試程式碼和生產程式碼分開,命名上相關
例如類A的測試類,叫AUnitTest 或ATest 或AUT

各個模組測試檔分開

測試文件有自己的入口文件

關鍵在專案配置,測試專案以來生產程式碼,生產程式碼不以來測試程式碼。
兩個應該是可以生產兩個可執行程式。依照這樣的目標配置專案

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板