91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

用在嵌入式開(kāi)發(fā)中的單元測(cè)試框架

STM32嵌入式開(kāi)發(fā) ? 來(lái)源:jera.com ? 2023-03-27 10:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

介紹

單元測(cè)試框架在面向?qū)ο蟮?a target="_blank">編程世界中非常流行。JUnit(用于 Java)、SUnit(用于 Smalltalk)和 CppUnit(用于 C++)等框架提供了豐富的功能集。 但是,對(duì)于想要在更受限制的環(huán)境(例如用 C 編寫的嵌入式系統(tǒng))中進(jìn)行單元測(cè)試的人來(lái)說(shuō),這組豐富的功能可能會(huì)令人生畏。 但是單元測(cè)試的重要之處在于測(cè)試,而不是框架。MinUnit 是一個(gè) 用 C 語(yǔ)言編寫的極其簡(jiǎn)單的單元測(cè)試框架。它不使用內(nèi)存分配,因此它幾乎可以在任何情況下正常工作,包括 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;
不,這不是一個(gè)錯(cuò)字。這只是 3 行代碼(這里是 4 行,因?yàn)槲覔Q了很長(zhǎng)的一行。)

設(shè)置測(cè)試用例

MinUnit 測(cè)試用例只是一個(gè)函數(shù),如果測(cè)試通過(guò)則返回 0(null)。如果測(cè)試失敗,該函數(shù)應(yīng)該返回一個(gè)描述失敗測(cè)試的字符串。 mu_assert 只是一個(gè)宏,如果傳遞給它的表達(dá)式為假,則返回一個(gè)字符串。mu_runtest 宏調(diào)用另一個(gè)測(cè)試用例并在該測(cè)試用例失敗時(shí)返回。這里的所有都是它的!

例子

下面的示例運(yùn)行兩個(gè)測(cè)試,一個(gè)通過(guò),一個(gè)失敗。


 /* 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;
 }

結(jié)論

人們認(rèn)為編寫單元測(cè)試框架必須很復(fù)雜。事實(shí)上,正如本技術(shù)說(shuō)明所示,您只需幾行代碼即可編寫一個(gè)。當(dāng)然,如果您可以訪問(wèn)像 JUnit 這樣的全功能測(cè)試框架,請(qǐng)務(wù)必使用它。 但如果你不這樣做,你仍然可以使用像 MinUnit 這樣的簡(jiǎn)單框架,或者在幾個(gè)小時(shí)內(nèi)創(chuàng)建你自己的框架。沒(méi)有理由不進(jìn)行單元測(cè)試。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    3683

    瀏覽量

    131447
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7632

    瀏覽量

    141872
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    590

    瀏覽量

    22313
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2119

    瀏覽量

    75361
  • 單元測(cè)試
    +關(guān)注

    關(guān)注

    0

    文章

    50

    瀏覽量

    3322

原文標(biāo)題:用在嵌入式開(kāi)發(fā)中的單元測(cè)試框架

文章出處:【微信號(hào):c-stm32,微信公眾號(hào):STM32嵌入式開(kāi)發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何搭建嵌入式C語(yǔ)言單元測(cè)試自動(dòng)化框架

    關(guān)于嵌入式C語(yǔ)言單元測(cè)試自動(dòng)化框架的搭建思路
    發(fā)表于 12-15 07:35

    Tessy嵌入式軟件單元測(cè)試/ 集成測(cè)試工具的相關(guān)資料分享

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

    嵌入式需不需要單元測(cè)試

    前言嵌入式行業(yè)摸爬滾打這幾年,遇見(jiàn)有規(guī)范單元測(cè)試的項(xiàng)目寥寥無(wú)幾。歸根到底,無(wú)非是公司希望快速迭代出產(chǎn)品,有問(wèn)題等客戶反饋再說(shuō)。當(dāng)然,也有人認(rèn)為是嵌入式行業(yè)都是小而美的產(chǎn)品居多,沒(méi)有到一定...
    發(fā)表于 12-21 08:16

    單元測(cè)試/集成測(cè)試自動(dòng)化工具--WinAMS

    為單位的自動(dòng)化單元測(cè)試工具作為能夠檢驗(yàn)出僅憑系統(tǒng)測(cè)試以及整體測(cè)試無(wú)法發(fā)現(xiàn)的[潛在錯(cuò)誤]的檢測(cè)方法,[單元測(cè)試]在嵌入式開(kāi)發(fā)領(lǐng)域受到廣泛重視。
    發(fā)表于 06-17 18:26

    如何提高嵌入式軟件單元測(cè)試效率

    在本指南中,您將學(xué)習(xí)如何通過(guò)在更短的時(shí)間內(nèi)運(yùn)行更多的測(cè)試來(lái)增加您的單元測(cè)試吞吐量。 這種效率的提高來(lái)自于使用虛擬平臺(tái)而不是物理硬件作為開(kāi)發(fā)平臺(tái)。 本指南對(duì)任何開(kāi)發(fā)或運(yùn)行
    發(fā)表于 08-28 06:31

    使用C++構(gòu)建嵌入式開(kāi)發(fā)框架

    框架作為一種大粒度的重用技術(shù)在桌面軟件開(kāi)發(fā)得到了廣泛應(yīng)用,而在嵌入式開(kāi)發(fā)領(lǐng)域,目前還沒(méi)有一套完整的標(biāo)準(zhǔn)框架可供使用。本文以通信領(lǐng)域的
    發(fā)表于 05-15 15:42 ?12次下載

    使用C++構(gòu)建嵌入式開(kāi)發(fā)框架

    使用C++構(gòu)建嵌入式開(kāi)發(fā)框架
    發(fā)表于 10-25 11:25 ?17次下載
    使用C++構(gòu)建<b class='flag-5'>嵌入式開(kāi)發(fā)</b><b class='flag-5'>框架</b>

    嵌入式需要單元測(cè)試嗎?

    前言 嵌入式行業(yè)摸爬滾打這幾年,遇見(jiàn)有規(guī)范單元測(cè)試的項(xiàng)目寥寥無(wú)幾。歸根到底,無(wú)非是公司希望快速迭代出產(chǎn)品,有問(wèn)題等客戶反饋再說(shuō)。當(dāng)然,也有人認(rèn)為是嵌入式行業(yè)都是小而美的產(chǎn)品居多,沒(méi)有到一定量級(jí)之前
    的頭像 發(fā)表于 10-23 16:08 ?2577次閱讀

    慕課嵌入式系統(tǒng)(第六章.單元測(cè)試5)

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

    慕課嵌入式開(kāi)發(fā)及應(yīng)用(第二章.單元測(cè)試)

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

    慕課嵌入式開(kāi)發(fā)及應(yīng)用(第一章.單元測(cè)試)

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

    慕課嵌入式開(kāi)發(fā)及應(yīng)用(第三章.單元測(cè)試)

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

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

    搭建測(cè)試環(huán)境、執(zhí)行測(cè)試、評(píng)估測(cè)試結(jié)果并生成測(cè)試報(bào)告。目前Tessy被廣泛應(yīng)用在汽車電子客戶,在
    的頭像 發(fā)表于 01-15 14:39 ?1424次閱讀
    Tessy—<b class='flag-5'>嵌入式</b>軟件<b class='flag-5'>單元測(cè)試</b>/集成<b class='flag-5'>測(cè)試</b>工具

    嵌入式系統(tǒng)開(kāi)發(fā)測(cè)試方法 嵌入式系統(tǒng)開(kāi)發(fā)與AI結(jié)合應(yīng)用

    嵌入式系統(tǒng)開(kāi)發(fā)測(cè)試方法 嵌入式系統(tǒng)開(kāi)發(fā)是一個(gè)復(fù)雜的過(guò)程,涉及到硬件和軟件的緊密結(jié)合。
    的頭像 發(fā)表于 12-09 10:22 ?1372次閱讀

    嵌入式軟件單元測(cè)試的必要性、核心方法及工具深度解析

    嵌入式系統(tǒng)一旦部署后修復(fù)成本極高,單元測(cè)試是防止致命缺陷流入終端的核心防線。 ?硬件依賴的測(cè)試困境? 傳統(tǒng)開(kāi)發(fā)流程,70%?的
    的頭像 發(fā)表于 03-21 14:53 ?475次閱讀
    主站蜘蛛池模板: 成人精品福利 | 九九re6精品视频在线观看 | 中国一级特黄高清免费的大片 | 亚洲午夜精品在线 | 婷婷六月在线 | se在线播放| 一道精品一区二区三区 | 极品国产一区二区三区 | 四大名著成人高h肉版 | 天天射天天摸 | 最好看的最新中文字幕2018免费视频 | 中文字幕一区二区三区 精品 | 三级网站国产 | 午夜免费片在线观看不卡 | 午夜免费小视频 | 天天干天天操天天舔 | 国产成人精品日本亚洲专 | 4438x色| 妹子干综合网 | 亚洲天堂ww | 久久99精品久久久久久臀蜜桃 | 久久青草国产免费观看 | 欧美极品在线 | 欧美日韩亚洲国内综合网俺 | 深夜视频在线观看免费 | 轻点灬大ji巴太粗太长了h | 人人洗澡人人洗澡人人 | 日本特级黄色大片 | 色五丁香| 琪琪午夜免费影院在线观看 | 免费人成年短视频在线观看免费网站 | 六月婷婷激情 | 欧美三级在线观看视频 | 欧美性xxxxbbbb| 欧美精品久久天天躁 | 国产精品久久久久天天影视 | 五月婷婷色视频 | 黄色午夜剧场 | 午夜高清福利 | 国产一级特黄一级毛片 | www.欧美黄色|