C++ の単体テストに役立つマクロを作成したいと考えています。テスト目的だけで新しいオブジェクトを作成したくない場合。(ClassName::function) のようなクラス関数参照を渡すことは可能ですか?
#define TEST(func_ptr,X,Expercted) \
(__extension__ ( \
{ \
__typeof__(X) __x = (X); \
__typeof__(Expercted) __y = (Expercted); \
result= funct_ptr(__x);\
//------- do some testing stuffs-----\
} \
))
クラス A とそのメソッド square() があります
int main(){
TEST(&A::square,2,4);
return 0;
}
square 関数が真の値を返すかどうかをテストしたいと思います。
上記のコードはエラーになります。問題を解決する方法。他の方法での解決策はかなりのものです