• 締切済み

static な c 関数の unit-test どこに書くかの?

こんにちは unittest コードはソースと別ファイルで管理するつもりですが、staticなc関数の場合、同ファイル内しかアクセスできないため、うまくできない。皆さんどのようにしているのでしょうか? いくつかの方法が考えていますが完璧なものはない 1、#include xxx.c   乱暴だが、うまくいくはず。っと思いきやstaticでない関数がいたりして。。。 2、ソースと一緒にunittestを書く   まぁ、最後の手段だけどな 3、staticを取り除く   いやですね、同名関数いるかもしれないし 4、Interfaceをつくる   そこまで大げさとはな、短い関数だし ちなみに c++の場合 friend を活用すればよいが。

みんなの回答

  • MASATO3
  • ベストアンサー率60% (27/45)
回答No.1

ユニットテストのときだけ有効になる定数を定義しておき、 その定数が定義されているときはstaticが取り除かれるようにします。

izayoi2004
質問者

お礼

#IF ですか。なるほど、ありがとうございました。 現在使っている方法は4番、インタフェース関数を作る方法です。たとえば関数 static int isABC(int a){...}  の場合 int unittest_isABC(int a){return isABC(a);} // unittest専用、目的以外使用禁止 とします。

関連するQ&A