boost::testの使い方

最近、UnitTestに興味を持ち始めた。

今まで、テストコードは自分で書いていたが、まぁ、リポートが結構イイ感じだし、導入も簡単そうなboost::testを利用する事にした。

今まで、河童*1CppUnit*2を使用してみたが、どうも使用感が〜 と言う事になり、いままで、おざなりにしてきたが・・・ どうも、最近、自分の作っているライブラリ郡のテストをしていないのでビシっ!!!と決めたいと思ったのである。


さて、使い方だが、詳しくはgoogle:boost::test じゃ、ダメですよね^^;
まずはLet's boost*3を読んで見てからです。
このページから、#include の存在を知りました。

今まで、律儀にライブラリを作ってから弄っていました。


ちなみにVCとかでTest用プロジェクト作って、unit_test_framework.libをリンクする場合、使用するランタイムライブラリは「マルチスレッド(DLL、デバッグ)」にしないとダメらしい。


minimal.hppで事足りるような気もしないでもない・・・。

何故、minimal.hppを推すのか?

  • テストしたいコードをC言語で記述している

CppUnit系にしない理由

  • CppUnitやCuppaのようなそんな大げさ?なツール郡が必要ない
  • すでに、自分で作ったassert関数みたいなのでチマチマ記述したテストコードが存在する。
  • CppUnitはその他、クラス等を覚えるの面倒

CUnitにしない理由

  • C++で記述したディレクトリを収集するクラスが存在していたので、C言語で記述したファイル関係を扱うコードをテストするにはC++も使える方が何かと良い
  • GPLである。(別にGPLでもテストコードがGPLになるだけで、自分のライブラリまではGPLにはならないと思うのだが、念のため・・・。)

以上の理由で私はboost/test/minimal.hppを使う事にしました。

でも、minimal.hppを見た感じ、throwをcatchしてエラーを表示するだけの機構かな?
と、思ったり・・・。
assertじゃだめ?(笑)*4

続く・・・

チョットまったーーー!!!
良く考えて見れば・・・、自分でUnitTestライブラリを書けばいいんじゃないか!!!
また、車輪の際発明が始まる・・・。

*1:http://sourceforge.jp/projects/cuppa/ http://www.shibu.jp/cuppa/

*2:google:cppunit

*3:http://www.kmonos.net/alang/boost/ 言語環境 test

*4:まだ、UnitTestの枠組みを理解していないみたいです。