日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > > 大橙子瘋嵌入式


前言

軟件開發(fā)中,每次需求的變更基本都需要改寫代碼,而代碼變更后就需要進行功能測試,當(dāng)然在功能測試之前需要代碼的單元測試,避免代碼改動后部分場景沒有驗證,最后出現(xiàn)各種問題。

通過測試框架快速完成代碼的單元測試,不僅可以覆蓋之前測試的場景,也能快速反應(yīng)問題在哪里

常用的C語言測試框架有

  • Unity:一個小型的,開源的C語言測試框架,提供了用于測試的基本結(jié)構(gòu)和函數(shù)。簡單好用,常用于嵌入式系統(tǒng)開發(fā)。

  • CUnit:一個面向C語言測試的框架,使用簡單,支持自動化測試和手動測試。

  • Check:適用于C語言的單元測試框架,使用簡單,支持測試套件、測試用例的管理,便于維護測試組件。

  • Google Test:Google推出的C++測試框架,支持C語言,可以跨平臺,具有豐富的斷言庫和Mocks。

  • cmocka:適用于C語言的單元測試框架,支持內(nèi)存泄漏檢測,支持Mock函數(shù)和Stub函數(shù)等高級用法。

  • criterion:基于C語言的單元測試框架,支持參數(shù)化測試和測試用例依賴,具有良好的性能和易用性。

介紹

這里介紹Unity,其他的可以自行查閱,不同的單元測試框架適用于不同的開發(fā)需求和場景。開發(fā)人員可以按照自己的項目要求選擇最適合的框架。

Unity最小可以只用到幾個文件即可完成,把Unity源碼目錄下的unity.c、unity.h、unity_internals.h三個文件復(fù)制至我們的工程目錄下進行編譯即可,然后在測試文件代碼中包含unity.h

https://github.com/ThrowTheSwitch/Unity/releases

簡單的示例
完成功能函數(shù)的驗證

#include  #include "unity.h" void setUp() { // 這里可以放置每個測試用例運行前的初始化代碼 } void tearDown() { // 這里可以放置每個測試用例運行后的清理代碼 } int Add(int a, int b) { return a + b;
} void test_AddFun(void) {
 TEST_ASSERT_EQUAL_UINT(6, Add(1, 5));
 TEST_ASSERT_EQUAL_UINT(4, Add(-1, 5));
 TEST_ASSERT_EQUAL_UINT(-6, Add(-1, -5));
} int main() {
 UNITY_BEGIN(); // 啟動測試 RUN_TEST(test_AddFun);
 UNITY_END(); // 結(jié)束測試 return 0;
} 

通過串口或終端打印內(nèi)容為:

C:\test/test.c:47:test_AddFun:PASS

----------------------- 1 Tests 0 Failures 0 Ignored
OK

其中,unity_internals.h文件中可以修改輸出終端,即UNITY_OUTPUT_CHAR宏的定義

/*-------------------------------------------------------
 * Output Method: stdout (DEFAULT)
 *-------------------------------------------------------*/ #ifndef UNITY_OUTPUT_CHAR /* Default to using putchar, which is defined in stdio.h */ #include  #define UNITY_OUTPUT_CHAR(a) (void)putchar(a) #else /* If defined as something else, make sure we declare it here so it's ready for use */ #ifdef UNITY_OUTPUT_CHAR_HEADER_DECLARATION extern void UNITY_OUTPUT_CHAR_HEADER_DECLARATION; #endif #endif 

下載鏈接

其中自定義實現(xiàn)的C語言擴展庫(cot)的容器功能函數(shù)都已通過Unity添加了對應(yīng)的單元測試用例,有興趣的朋友可以參考:

下載鏈接(點擊閱讀原文):https://gitee.com/const-zpc/cot


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉