2009-11-09 93 views
10

我有一個包含10-15個應用程序的C++遺留代碼庫,它們共享幾個組件。單元測試。文件結構

在建立兩個共享組件單元測試和應用程序本身,如果存在被接受/公共文件結構此我想知道。

因爲我的單元測試,以簡化項目/客戶特定的測試設置有多個基類中,有很多是所有測試共同文件。

對我來說很自然在這裏創建一個包含所有測試相關文件的新目錄,嘲笑等-to擁有這一切集中,並且還保持測試相關的定義開出主讓文件。

在另一方面,我看到它是常見的做法有測試文件與他們測試的代碼文件一起居住。

是否有更多/更少接受的方式來做到這一點?

回答

4

看不見,如果您將測試文件與代碼文件放在一起,開發人員可能會更清楚地看到,當他們更新代碼文件時,他們也應該更新測試。

2

正如你提到的,有定位單元測試文件兩種常用方法:附近的實現代碼,他們正在測試,並在一個單獨的文件層次結構。選擇是關於你的組織和個人品味的常見做法。

關於常見的測試碼的位置,只是組織你的測試代碼,你會組織實施的代碼。

在您的具體情況下,如果某些測試基礎架構對於多個獨立組件是通用的,那麼創建一個新組件(例如稱爲「測試」)是一個好主意,其他組件依賴於其測試,而不是添加現有組件之間的依賴關係。

2

我通常看起來(在簡單的情況下)的文件結構,這樣的組織這樣的代碼:

apps 
    app1 
     app1module1 
     app2module2 
     app1tests 
    app2 
     app2module1 
     app2tests 
components 
    comp1 
     comp1module1 
     comp1module2 
     comp1tests 
common_test_stuff 

還有就是要做到這一點沒有唯一正確的途徑,但是這似乎是一個普遍的做法,保持生產和測試代碼分離,並試圖在同一時間刪除不可見,不在意的問題(由zac提及)。

+0

'app2module2'應該是'app1module2'。 – Etherealone 2014-02-19 09:01:38

1

保持測試代碼接近產品代碼,並安排你的Makefile(或者你正在使用的任何東西),以便測試在測試的同時進行編譯,使它們可見,特別是如果不是所有人團隊正在寫測試。