Test Driven Development for Embedded C読書会第4回
実コードはlibにテストダブルは.oにする。テストビルド時、まず、.oでリンクが解決され、ライブラリの実コードは参照されない。実ビルドでは単純にテストダブルの.oを除外すればいい!!なるほど!!#tdd4ec
2012-06-03 15:30:04テストによって、CUTを変える際にバイナリを気安く分けるというのはよろしくない。ちゃんと考えて運用しないといけない。#tdd4ec
2012-06-03 15:43:47Spy codeはファイルスコープにしておき、Spyされる側からは内部の動作が見えないようにする。インスタンス生成コードで初期化する。 #tdd4ec
2012-06-03 15:50:57実装からフェイクを作ることもできるが、メンテが困難になる。テストから始めればテストも書きやすいし、フェイクも作りやすい。 #tdd4ec
2012-06-03 15:51:16collaboratorのヘッダファイルをインタフェースとして、実装のソースファイルをSpyに置き換え。インタフェース経由でアクセスすることもあるし、Spyとしても使えたり。OO言語の継承を実現するやり方。#tdd4ec
2012-06-03 16:24:21将来必要になることを考慮して、部分的な構造体を導入するが、先に必要になるものを全て今実装するわけではない。先を考えないわけでもないし、先に必要になるものを今すべてやるわけでもない。 #tdd4ec
2012-06-03 16:47:50将来必要になることを考慮して、部分的な構造体を導入するが、先に必要になるものを全て今実装するわけではない。実装は後回し。空メソッドだけ作るのと本質的には同じ。 #tdd4ec
2012-06-03 16:52:10引数の数が増えると可読性が下がるし、境界値チェックも増える。引数の数を増やさずに関数を増やすようにリファクタリングする。 #tdd4ec
2012-06-03 16:55:45引数を増やすと表記が増えてクライアントコードの負担になる。引数のenumが増えるよりも関数が増えることを選ぶ。#tdd4ec
2012-06-03 16:56:24テストコードで保護してプロダクトコードをリファクタリングし、プロダクトコードで保護してテストコードをリファクタリングする。お互いに鍵をかけて交互にリファクタリングする。 #tdd4ec
2012-06-03 17:02:31