Test Driven Development for Embedded C 読書会 第5回
第5回やりました。
今回扱ったのは以下。
・第9章「Runtime-Bounded Test Doubles」で、リンク時置換ではなく実行時に関数ポインタで置換する手法を学びました。
・第10章「The Mock Object」で複雑な相互作用をテストするとき(例えば、通信周りのように詳細なプロトコルを実装する場面)でモックを使う方法について学びました。
続きを読む
Yohei
@legoboku
#tdd4ec 参入障壁が高い分野は新規参入が難しくて、血みどろの戦いになりにくい。そういう分野を見つけてがんばるというのも手だな。
2012-07-07 13:24:46
Yohei
@legoboku
#tdd4ec WACATEに参加した話。いろんな職種の人が集まってテストについて議論する。各自の常識が違うから、喧々諤々の議論になる。同じ課題をみんなで考える。成果物をまとめて発表。いろんなアプローチが見れる。
2012-07-07 13:28:04
Yohei
@legoboku
#tdd4ec CppUTestは関数ポインタの置き換えともとに戻す作業をサポートするマクロが用意されているんだな。オブジェクトの破棄と一緒にポインタを戻すようにしてて、ポインタを戻すコードは自分で書かないと。
2012-07-07 14:17:42
Harlequin Shrimp
@EspernaShrimp
これよさそう。http://t.co/mJtH9cO3 #tdd4ec http://t.co/z716fVRq
2012-07-07 14:25:39
Yohei
@legoboku
#tdd4ec テストグループ共通のオブジェクトはsetupで用意。たまにテスト関数ごとに違ったケースのためのオブジェクトを用意する場合もあるな。 #tdd4ec
2012-07-07 14:48:39
Yohei
@legoboku
#tdd4ec 「テストを容易にすること」は関数ポインタに置き換える十分な理由になるけど、みんな関数ポインタに置き換えていいわけじゃない。必要とされるときに使いましょう。乱用すると混乱のもとになるよね。
2012-07-07 14:53:18
Yohei
@legoboku
#tdd4ec コンパイルユニットを分割して、リンク結合すれば関数ポインタと同じことができる。その場によって適切な道具を選びましょう。
2012-07-07 14:55:28