CppUnitを使ってみた
JUnitはJavaの単体テスト自動化フレームワークですが、
CppUnitはC++の単体テスト自動化フレームワークです
私が実施したテストが一般的なものかはわかりませんが、
CppUnit実行に必要なものは主に以下のものです
①CppUnit関数ライブラリ
②テスト結果出力用ソース
③テストソース
④テスト対象メソッドを含むモジュール
①、②は一度環境を設定してしまえば
プログラムの改修等ではあまり触れることは無いと思います
改修した(または追加した)ソースをコンパイルして生成されたモジュールを
所定の位置(CPPUNIT_ROOTなど環境変数にて指定)に配置し、
単体テスト仕様書に合わせてテストソースを修正します
テストソース内には
テスト実施前の初期化の内容であったり
テストケース毎に期待値を記述します
実際にやってみて感じたことは、
期待値はテストソースの中にベタ書き状態なので
ケース追加やケース修正を伴う度に手間がかかるということ
(テストソースを直す度に要コンパイル)
事実、テストソースの修正に大分手間を取られてしまいました
とはいえ、テストソースさえきっちり書ければ、
テスト実施・検証は効率的かつ正確に行えるので
有益なフレームワークではあると思います
自動化は効率化・正確化のために行うものですから、
期待値は外部ファイルから取り込むようにするなど
効率化・正確化をより強める工夫が必要ですね
(これは使う側の問題ですね)
実際の使い方はこちらのサイトが参考になりそうです
※C++開発者のための単体テスト入門
第2回 C++アプリケーションの効率的なテスト手法(CppUnit編)
http://www.atmarkit.co.jp/fdotnet/cpptest/cpptest02/cpptest02_01.html