ダミー関数を用いたテストを行っています。しかし、テスト対象の関数がstatic関数である場合、別ファイルにあるダミー関数からテスト対象のstatic関数を呼び出すことができません。どのようにすればテスト可能でしょうか?
よくある質問(FAQ)
ダミー関数を用いたテストを行っています。しかし、テスト対象の関数がstatic関数である場合、別ファイルにあるダミー関数からテスト対象のstatic関数を呼び出すことができません。どのようにすればテスト可能でしょうか?
static 宣言された関数は、ダミー関数から直接呼び出すことができません。この場合は「関数ポインタ」を使用し、検証対象となる static 関数を間接的に呼び出すことでテストを行います。
(テスト対象関数の例)
static int test_func(int a)
{
if (a < 0) {
return -1;
}
return a;
}
(ダミー関数の例)
int (*DBG_test_func)(int);
int dbg_in, dbg_out;
void dummy_for_test_func(void)
{
dbg_out = (*DBG_test_func)(dbg_in);
}
CSVファイルの「Input変数」の欄には、関数ポインタ変数(DBG_test_func)を登録してください。この関数ポインタ変数の入力データに、テスト対象のstatic 関数を指定することで、ダミー関数を経由して static 関数を呼び出すことができるようになります。