首頁  >  問答  >  主體

單元測試 - 關於c++測試的一些和程式碼組織相關的問題

我是一個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_leeringa_lee2669 天前821

全部回覆(1)我來回復

  • 给我你的怀抱

    给我你的怀抱2017-05-31 10:40:53

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

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

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

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

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

    各個模組測試檔分開

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

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

    回覆
    0
  • 取消回覆