2010-03-25 80 views
2

我正在尋找以C編寫的單元測試嵌入式系統代碼的方法。具有良好單元測試的嵌入式系統代碼?

同時,我也在尋找一個可以使用的良好UT框架。該框架應該具有相當少量的依賴關係。

任何優秀的開源產品都具有良好的UTs?

編輯:

夥計們,感謝您的答案 - 我真的欣賞他們,但是這直接不回答我的問題:

你知道的任何開放源代碼使用C單元測試?我想看看它是如何做,這樣我可以學習的東西代碼...

回答

1

編輯:在check project page上有一個使用Check作爲單元測試框架的項目列表。一些鏈接已過時,但您可以瀏覽單元測試的源碼pigmentSCEW;必須爲其他人下載源代碼。


minunit具有完全沒有依賴關係,並可以作爲一個基礎來構建自己的框架。

就方法而言,我從最底層的函數(樹葉)開始。通常,當我測試更高級別的函數時,它們會調用較低級別的函數。由於較低的功能已經過測試,因此這不是問題。

我還將代碼模塊化爲「對象」或對象表。存根函數允許單獨測試硬件或其他組件。

我擺脫了一個定義,刪除它們的靜態,或者我將包含要測試的函數的源文件包括到單元測試源文件。

#if defined(UNIT_TESTING) 
#define STATIC 
#else 
#define STATIC static 
#endif 

這裏沒有火箭科學,但這是訣竅。

最後一件事,測試行爲,而不是實現,以便在實現更改時單元測試不會中斷。

2

模塊化代碼以這樣的方式,有其知道的底部的薄層底層硬件的細節。然後可以在普通PC上模擬該層。這樣,您可以使用普通的單元測試庫進行桌面開發,以測試除薄底層以外的所有代碼。

我在開發Linux嵌入式軟件方面的經驗是使用C++而不是普通的C.我們使用cppunit進行單元測試。