MinUnit – 最小的c語言測試模板 (轉)
MinUnit – 最小的c語言測試
_Code#Source_Code">
一個測試例項
介紹
單元測試模板在面向的語言中相當流行。像JUnit,SUnit和CppUnit等模板提供相當多的功能。可是,如此多的功能會使做單元測試的開發者(例如使用C語言開發嵌入式的開發者)進入拘泥的環境。單元測試的重點是測試而不是測試模板。MiniUnit是一個極端簡單的C語言單元測試模板。他沒有分配,因此可以使用在包括ROMable程式碼在內的幾乎任意環境中良好工作。
原始碼
/* : 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;
它只有三行程式碼。
安裝一個測試例項
一個MinUnit測試例項是一個透過測試則返回0(NULL)的。如果測試失敗,這個函式應該返回一個測試失敗的描述字串。mu_assert 是一個當失敗時返回字串的宏。而宏mu_runtest重複測試例項直到測試例項失敗。這就是MinUnit的全部。
例子
下面的例子執行兩個測試,一個成功,一個失敗。
/* 檔案 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("%sn", result); } else { printf("ALL TESTS PASSEDn"); } printf("Tests run: %dn", tests_run); return result != 0; } 人們一般認為寫一個單元測試模板會很複雜。但實際上你僅僅需要寫幾行程式碼。當然如果你接觸如JUnit一樣的全功能的單元測試模板,那你應該用所有的手段使用它。如果你沒有,你仍然可以使用像MinUnit一樣簡單的模板,否則你的時間將會飛逝。這不是放棄單元測試的理由。 你可以在任意目的下使用本文的程式碼而不需要任何的理由。 :namespace prefix = o ns = "urn:schemas--com::office" />結論
許可
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-981901/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C語言單元測試C語言
- 新建一個最小的Makefile工程(C語言)C語言
- C語言上機測試模擬題-1C語言
- C語言上機測試模擬題2C語言
- 一套幫助你理解 C 語言的測試題
- [轉]PhpStorm 超強語言模板的支援PHPORM
- C語言的考試題型C語言
- 複利計算4.0單元測試(c語言)C語言
- C++語言的單元測試與程式碼覆蓋率C++
- Julia語言的一些測試
- C++語言概述 (轉)C++
- C語言模擬試題1C語言
- C語言模擬試題2C語言
- C語言模擬試題3C語言
- C語言模擬試題4C語言
- C語言模擬試題5C語言
- C語言模擬試題6C語言
- C語言[工程專案應用]gtest測試框架編寫以及自定義測試框架C語言框架
- Java語言和C++語言的差異 (轉)JavaC++
- Linux中的C語言妙用(轉)LinuxC語言
- C語言---整型字串轉換C語言字串
- c語言函式庫(轉)C語言函式
- Linux指令碼語言PERL 的模板應用分析(轉)Linux指令碼
- C語言爬蟲程式編寫的爬取APP通用模板C語言爬蟲APP
- 測試 PHP/Node.js/python/c/c++/go 語言執行時間PHPNode.jsPythonC++Go
- C語言考試題及答案(一)C語言
- C語言考試大綱(參考)C語言
- C語言入門題-7-1 最大和最小 (10分)C語言
- django 模板語言的註釋操作Django
- Go 語言基準測試入門Go
- C語言的隱式型別轉換C語言型別
- C語言常見的出錯資訊! (轉)C語言
- Unix C語言值得注意的地方(轉)C語言
- C# 程式語言的未來功能 (轉)C#
- C語言 C語言野指標C語言指標
- C語言---“C語言 誰與爭鋒?”C語言
- 【C語言】聊聊輾轉相除法C語言
- C語言動態呼叫庫(轉)C語言