- 締切済み
static な c 関数の unit-test どこに書くかの?
こんにちは unittest コードはソースと別ファイルで管理するつもりですが、staticなc関数の場合、同ファイル内しかアクセスできないため、うまくできない。皆さんどのようにしているのでしょうか? いくつかの方法が考えていますが完璧なものはない 1、#include xxx.c 乱暴だが、うまくいくはず。っと思いきやstaticでない関数がいたりして。。。 2、ソースと一緒にunittestを書く まぁ、最後の手段だけどな 3、staticを取り除く いやですね、同名関数いるかもしれないし 4、Interfaceをつくる そこまで大げさとはな、短い関数だし ちなみに c++の場合 friend を活用すればよいが。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- MASATO3
- ベストアンサー率60% (27/45)
回答No.1
ユニットテストのときだけ有効になる定数を定義しておき、 その定数が定義されているときはstaticが取り除かれるようにします。
お礼
#IF ですか。なるほど、ありがとうございました。 現在使っている方法は4番、インタフェース関数を作る方法です。たとえば関数 static int isABC(int a){...} の場合 int unittest_isABC(int a){return isABC(a);} // unittest専用、目的以外使用禁止 とします。