cmn-clib(CommonLibraryForC)
C言語共通ライブラリ
|
ユニットテストライブラリ [詳解]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "cmnclib/CmnTest.h"
#include "cmnclib/Common.h"
#include "cmnclib/CmnData.h"
#include "cmnclib/CmnTime.h"
#include "cmnclib/CmnString.h"
#include "cmnclib/CmnLog.h"
マクロ定義 | |
#define | REPORT_BUF_SIZE_OF_DUMP 1024 |
#define | REPORT_BUF_SIZE_OF_ONE_CALSE 4096 |
関数 | |
void | CmnTest_InitializeTestPlan (CmnTestPlan *plan) |
テストプランを作成する [詳解] | |
void | CmnTest_AddTestCase (CmnTestPlan *plan, char *fileName, char *caseName, void(*testFunction)(CmnTestCase *)) |
テストプランにテストケースを追加する [詳解] | |
void | CmnTest_Run (CmnTestPlan *plan, int realtimeReport) |
テストを実行する [詳解] | |
void | CmnTest_DestroyTest (CmnTestPlan *plan) |
テストプランを破棄する [詳解] | |
int | CmnTest_AssertNumber (CmnTestCase *testCase, long line, long long actual, long long expected) |
int | CmnTest_AssertPointer (CmnTestCase *testCase, long line, void *actual, void *expected) |
int | CmnTest_AssertString (CmnTestCase *testCase, long line, char *actual, char *expected) |
void | tohex8 (char *buf, unsigned char dat) |
8bitデータをHEX形式の文字列に変換する. [詳解] | |
char * | toHexString (void *data, size_t len) |
int | CmnTest_AssertData (CmnTestCase *testCase, long line, void *actual, void *expected, size_t dataLen) |
int | CmnTest_AssertOK (CmnTestCase *testCase, long line) |
int | CmnTest_AssertNG (CmnTestCase *testCase, long line) |
ユニットテストライブラリ
ユニットテストライブラリ。
<使用例>
# テストプランの作成 CmnTest_Plan plan; CmnTest_InitializeTestPlan(&plan);
# テストケースの追加 CmnTest_AddTestCaseEasy(&plan, test_1); CmnTest_AddTestCaseEasy(&plan, test_2);
# テスト実行 CmnTest_Run(&plan, False);
# テスト結果表示 puts(plan.report);
# テスト破棄 CmnTest_DestroyTest(&plan);
# テストメソッド(test_1) void test_1(CmnTest_Case *testCase) { # テスト対象処理の実行 char buf[32]; sprintf(buf, "%s %s", "Hello", "world");
# 検証 CmnTest_AssertString(case, __LINE__, buf, "Hello world"); } # テストメソッド(test_2) void test_2(CmnTest_Case *testCase) { ・・・省略・・・ }
void CmnTest_AddTestCase | ( | CmnTestPlan * | plan, |
char * | fileName, | ||
char * | caseName, | ||
void(*)(CmnTestCase *) | testFunction | ||
) |
テストプランにテストケースを追加する
本関数にはラッパーマクロ「CmnTest_AddTestCaseEasy」が用意されている。 ラッパーマクロを使用すると、fileName(__FILE__)とcaseName(testFunction関数名)が補完される。
testPlan | テストプラン |
fileName | テストケースファイル名 |
caseName | テストケース名 |
testFunction | テスト実施関数 |
int CmnTest_AssertData | ( | CmnTestCase * | testCase, |
long | line, | ||
void * | actual, | ||
void * | expected, | ||
size_t | dataLen | ||
) |
データ検証
int CmnTest_AssertNG | ( | CmnTestCase * | testCase, |
long | line | ||
) |
検証NGを記録する
int CmnTest_AssertNumber | ( | CmnTestCase * | testCase, |
long | line, | ||
long long | actual, | ||
long long | expected | ||
) |
整数値検証
int CmnTest_AssertOK | ( | CmnTestCase * | testCase, |
long | line | ||
) |
検証OKを記録する
int CmnTest_AssertPointer | ( | CmnTestCase * | testCase, |
long | line, | ||
void * | actual, | ||
void * | expected | ||
) |
ポインタ検証
int CmnTest_AssertString | ( | CmnTestCase * | testCase, |
long | line, | ||
char * | actual, | ||
char * | expected | ||
) |
文字列検証
void CmnTest_DestroyTest | ( | CmnTestPlan * | plan | ) |
テストプランを破棄する
plan | テストプラン |
void CmnTest_InitializeTestPlan | ( | CmnTestPlan * | plan | ) |
テストプランを作成する
テストプランを作成する
void CmnTest_Run | ( | CmnTestPlan * | plan, |
int | realtimeReport | ||
) |
テストを実行する
plan | テストプラン |
realtimeReport | テスト実行時にテスト結果を順次標準出力に出力するか(True:出力する、False:出力しない) |
void tohex8 | ( | char * | buf, |
unsigned char | dat | ||
) |
8bitデータをHEX形式の文字列に変換する.
buf | (0) 変換後のHEX文字列を格納するバッファ。 最低でも2byteの領域を有すること。 |
dat | (I) 変換対象のデータ |