C言語でTDDを行う場合、また組込み系でTDDを行う場合、色々問題が発生する。 スタブ関数名の競合 クロスコンパイル環境(実機の容量不足、実機用CPUで使えるツールが少ない(カバレッジ計測など)) グローバル変数の使い過ぎで単体テスト不可 私の場合は以下のようにして行った。 1.関数のモジュール仕様書を作成し、関数名、関数毎の引数、戻り値を定義 2.上記よりスケルトンを作成(自動) 3.ターゲットCPU依存のデバイスをパソコン用にスタブ関数とヘッダーを作成 (擬似FROMのR/W,SIOのR/W,ポートのI/Oなど) 4.Cygwin上でCUnit for Ando でスケルトン用にUnitテストを実装 5.単体テスト実行後、スタブを実機用のドライバーに切り替え(ヘッダーファイルを変更)実機に組み込み。 C言語におけるTDDの問題点と解決方法 組込み開発におけるテスト駆動開発事例 〜C言語