CppUnitを使ってみた

開発で初めてCppUnitを使って単体テストを行いました

JUnitJava単体テスト自動化フレームワークですが、
CppUnitC++単体テスト自動化フレームワークです

私が実施したテストが一般的なものかはわかりませんが、
CppUnit実行に必要なものは主に以下のものです

CppUnit関数ライブラリ
②テスト結果出力用ソース
③テストソース
④テスト対象メソッドを含むモジュール

①、②は一度環境を設定してしまえば
プログラムの改修等ではあまり触れることは無いと思います

改修した(または追加した)ソースをコンパイルして生成されたモジュールを
所定の位置(CPPUNIT_ROOTなど環境変数にて指定)に配置し、
単体テスト仕様書に合わせてテストソースを修正します

テストソース内には
テスト実施前の初期化の内容であったり
テストケース毎に期待値を記述します

実際にやってみて感じたことは、
期待値はテストソースの中にベタ書き状態なので
ケース追加やケース修正を伴う度に手間がかかるということ
(テストソースを直す度に要コンパイル)

事実、テストソースの修正に大分手間を取られてしまいました

とはいえ、テストソースさえきっちり書ければ、
テスト実施・検証は効率的かつ正確に行えるので
有益なフレームワークではあると思います

自動化は効率化・正確化のために行うものですから、
期待値は外部ファイルから取り込むようにするなど
効率化・正確化をより強める工夫が必要ですね
(これは使う側の問題ですね)

実際の使い方はこちらのサイトが参考になりそうです

C++開発者のための単体テスト入門
第2回 C++アプリケーションの効率的なテスト手法(CppUnit編)
http://www.atmarkit.co.jp/fdotnet/cpptest/cpptest02/cpptest02_01.html