精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

用在嵌入式開發中的單元測試框架

STM32嵌入式開發 ? 來源:jera.com ? 2023-03-27 10:08 ? 次閱讀

介紹

單元測試框架在面向對象的編程世界中非常流行。JUnit(用于 Java)、SUnit(用于 Smalltalk)和 CppUnit(用于 C++)等框架提供了豐富的功能集。 但是,對于想要在更受限制的環境(例如用 C 編寫的嵌入式系統)中進行單元測試的人來說,這組豐富的功能可能會令人生畏。 但是單元測試的重要之處在于測試,而不是框架。MinUnit 是一個 用 C 語言編寫的極其簡單的單元測試框架。它不使用內存分配,因此它幾乎可以在任何情況下正常工作,包括 ROMable 代碼。

源代碼


 /* file: minunit.h */
 #define mu_assert(message, test) do { if (!(test)) return message; } while (0)
 #define mu_run_test(test) do { char *message = test(); tests_run++; 
                                if (message) return message; } while (0)
 extern int tests_run;
不,這不是一個錯字。這只是 3 行代碼(這里是 4 行,因為我換了很長的一行。)

設置測試用例

MinUnit 測試用例只是一個函數,如果測試通過則返回 0(null)。如果測試失敗,該函數應該返回一個描述失敗測試的字符串。 mu_assert 只是一個宏,如果傳遞給它的表達式為假,則返回一個字符串。mu_runtest 宏調用另一個測試用例并在該測試用例失敗時返回。這里的所有都是它的!

例子

下面的示例運行兩個測試,一個通過,一個失敗。


 /* file minunit_example.c */
 
 #include 
 #include "minunit.h"
 
 int tests_run = 0;
 
 int foo = 7;
 int bar = 4;
 
 static char * test_foo() {
     mu_assert("error, foo != 7", foo == 7);
     return 0;
 }
 
 static char * test_bar() {
     mu_assert("error, bar != 5", bar == 5);
     return 0;
 }
 
 static char * all_tests() {
     mu_run_test(test_foo);
     mu_run_test(test_bar);
     return 0;
 }
 
 int main(int argc, char **argv) {
     char *result = all_tests();
     if (result != 0) {
         printf("%s
", result);
     }
     else {
         printf("ALL TESTS PASSED
");
     }
     printf("Tests run: %d
", tests_run);
 
     return result != 0;
 }

結論

人們認為編寫單元測試框架必須很復雜。事實上,正如本技術說明所示,您只需幾行代碼即可編寫一個。當然,如果您可以訪問像 JUnit 這樣的全功能測試框架,請務必使用它。 但如果你不這樣做,你仍然可以使用像 MinUnit 這樣的簡單框架,或者在幾個小時內創建你自己的框架。沒有理由不進行單元測試。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式系統
    +關注

    關注

    41

    文章

    3564

    瀏覽量

    129224
  • C語言
    +關注

    關注

    180

    文章

    7598

    瀏覽量

    136174
  • 字符串
    +關注

    關注

    1

    文章

    577

    瀏覽量

    20485
  • C++
    C++
    +關注

    關注

    22

    文章

    2104

    瀏覽量

    73487
  • 單元測試
    +關注

    關注

    0

    文章

    39

    瀏覽量

    3143

原文標題:用在嵌入式開發中的單元測試框架

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何搭建嵌入式C語言單元測試自動化框架

    關于嵌入式C語言單元測試自動化框架的搭建思路
    發表于 12-15 07:35

    Tessy嵌入式軟件單元測試/ 集成測試工具的相關資料分享

    Tessy — 嵌入式軟件單元測試/ 集成測試工具本文章向大家介紹Tessy — 嵌入式軟件單元測試/ 集成
    發表于 12-21 07:11

    嵌入式需不需要單元測試

    前言嵌入式行業摸爬滾打這幾年,遇見有規范單元測試的項目寥寥無幾。歸根到底,無非是公司希望快速迭代出產品,有問題等客戶反饋再說。當然,也有人認為是嵌入式行業都是小而美的產品居多,沒有到一定...
    發表于 12-21 08:16

    單元測試/集成測試自動化工具--WinAMS

    為單位的自動化單元測試工具作為能夠檢驗出僅憑系統測試以及整體測試無法發現的[潛在錯誤]的檢測方法,[單元測試]在嵌入式開發領域受到廣泛重視。
    發表于 06-17 18:26

    如何提高嵌入式軟件單元測試效率

    在本指南中,您將學習如何通過在更短的時間內運行更多的測試來增加您的單元測試吞吐量。 這種效率的提高來自于使用虛擬平臺而不是物理硬件作為開發平臺。 本指南對任何開發或運行
    發表于 08-28 06:31

    使用C++構建嵌入式開發框架

    框架作為一種大粒度的重用技術在桌面軟件開發得到了廣泛應用,而在嵌入式開發領域,目前還沒有一套完整的標準框架可供使用。本文以通信領域的
    發表于 05-15 15:42 ?12次下載

    嵌入式開發

    嵌入式開發就是指在嵌入式操作系統下進行開發嵌入式Linux是以Linux為基礎的嵌入式作業系統。這里提供了
    發表于 12-20 13:21
    <b class='flag-5'>嵌入式開發</b>

    使用C++構建嵌入式開發框架

    使用C++構建嵌入式開發框架
    發表于 10-25 11:25 ?17次下載
    使用C++構建<b class='flag-5'>嵌入式開發</b><b class='flag-5'>框架</b>

    嵌入式需要單元測試嗎?

    前言 嵌入式行業摸爬滾打這幾年,遇見有規范單元測試的項目寥寥無幾。歸根到底,無非是公司希望快速迭代出產品,有問題等客戶反饋再說。當然,也有人認為是嵌入式行業都是小而美的產品居多,沒有到一定量級之前
    的頭像 發表于 10-23 16:08 ?2295次閱讀

    什么是單元測試,為什么要做單元測試

    單元測試是整個軟件開發過程中的一個重要環節 ,執行一個完備的單元測試方案能夠提高整個開發過程的時間效率,確保軟件的實際功能與詳細設計說明的一致性,使軟件
    的頭像 發表于 04-28 17:21 ?9645次閱讀

    慕課嵌入式系統(第六章.單元測試5)

    慕課電子科技大學.嵌入式系統.第六章.嵌入式軟件系統.單元測試50 目錄6 嵌入式軟件系統6.4 單元測試56.4.1課堂重點6.4.2
    發表于 10-20 19:21 ?4次下載
    慕課<b class='flag-5'>嵌入式</b>系統(第六章.<b class='flag-5'>單元測試</b>5)

    慕課嵌入式開發及應用(第二章.單元測試)

    慕課蘇州大學.嵌入式開發及應用.第二章.入門與軟件框架.單元測試0 目錄2 入門與軟件框架2.10 單元測試2.10.1 課堂重點2.10.
    發表于 11-02 19:21 ?15次下載
    慕課<b class='flag-5'>嵌入式開發</b>及應用(第二章.<b class='flag-5'>單元測試</b>)

    慕課嵌入式開發及應用(第一章.單元測試)

    慕課蘇州大學.嵌入式開發及應用.第一章.基礎與硬件.單元測試0 目錄1 基礎與硬件1.1 單元測試1.1.1課堂重點1.1.2測試與作業2 下一章0 目錄1 基礎與硬件1.1
    發表于 11-02 21:06 ?17次下載
    慕課<b class='flag-5'>嵌入式開發</b>及應用(第一章.<b class='flag-5'>單元測試</b>)

    慕課嵌入式開發及應用(第三章.單元測試)

    慕課蘇州大學.嵌入式開發及應用.第三章.基本模塊.單元測試0 目錄3 基本模塊3.11 單元測試3.11.1 課堂重點3.11.2 測試與作業4 下一章0 目錄3 基本模塊3.11
    發表于 11-03 12:36 ?15次下載
    慕課<b class='flag-5'>嵌入式開發</b>及應用(第三章.<b class='flag-5'>單元測試</b>)

    Tessy—嵌入式軟件單元測試/集成測試工具

    搭建測試環境、執行測試、評估測試結果并生成測試報告。目前Tessy被廣泛應用在汽車電子客戶,在
    的頭像 發表于 01-15 14:39 ?773次閱讀
    Tessy—<b class='flag-5'>嵌入式</b>軟件<b class='flag-5'>單元測試</b>/集成<b class='flag-5'>測試</b>工具