Cっぽいコードでgtestとgmockを使ってみる その2
Cっぽいコードでgtestとgmockを使ってみる その2 前回 Cっぽいコードのフリー関数に対してgtest, gmockを使った試験ができそうだ、というところまで進めることができましたが、やはり既存のソースコードに手が入ってしまうことが気になっていました。 今回は、そこを改良できないか試してみます。 参考にした情報 以下の情報を参考にさせていただきました。ありがとうございます。 (自分で思いつくのは無理です・・・) ブログ C言語のテストでスタブ関数を使うためのアイデア googlemockでグローバル変数のモックオブジェクトを作れるか 方針を検討する 前回のコード 前回の試験対象関数が書かれたコードはこんな感じでした。 関数名 説明 publicMethod 試験対象の関数。内部で面倒な処理を行う privateMethod01 を呼び出している。 privateMethod01 面倒な処理をしている関数。 publicMethod と結合して試験はしたくない。 # include "capsule.h" # ifdef GTEST // add "_impl" suffix to private function # define FUNC(func_name) func_name ## _impl # else // not to change # define FUNC(func_name) func_name # endif // TEST // Prototype for private function static void FUNC ( privateMethod01 ) ( const uint8_t input , uint8_t & output ) ; # ifdef GTEST // To use mock, replace function call to pointer void ( * privateMethod01 ) ( const uint8_t input , uint8_t & output ) = FUNC ( privateMetho...