CUnitを使ってみよう 第15回

επιστημη
CUnitを使ってみよう
第1
5回
初心に帰って
いこと寝てたのを急に叩き起こした
が少なくなったAGP。Vistaに備える
からでしょうか……。
にはマザーボードごと換装せにゃな
近所の大型量販店には むき出しの
リムーバブルなHDケースを用意し、
えぴすてーめー
バルクドライブなんぞは置いてなくて、
りません。ふっ、
「安物買いの銭失い」
とは僕のことさ……。
そこらへんに転がってたポンコツHDを
スピンドル買いしているCD/DVD-R
さて、dot NE T マガジンから Win
ねじ込んで FedoraCore5なんぞをイン
もそろそろ底をつきかけていたので今
dows Developerマガジンへと誌名が
ストールし、WinXPととっかえひっか
月もアキバにいそいそと出掛けまし
改まって一年ちょっと。“.NE T だけ
え遊び始めて一週間も経たぬうちに、
た。差し替えて再起動したときのトラ
じゃない、Windows下の開発に絡む
ポンコツHDが逝ってしまいました。い
ブルを避けるためWinXPをインストー
トピックを広範にカバーしようじゃ
つまで 待ってもFedoraCoreが 立ち上
ルしてあるのとまったく同じSeagate
ないの”という意気込みの表われか
がってくれません。耳を澄ませばファ
の40Gを買ってきてFedoraCoreを再
と思います。だから僕もC#とかC++/
ンの風切り音に混じってカコンカコン
度インストールしました。目下のとこ
CLIだけじゃなく、畑を広げてもかま
と不穏なHDの囁きが 聞こえます。長
ろすこぶる快調に動作してくれてま
わんわけです。加えてVisual Studio
す。近々、もいっこ買って来てVista
2005 Express が発売後一年としてい
βを入れて遊ぼうかと思ってます。
た無償提供をさらに継続するとのこ
レベル
1
2
3
4
言語
■
C/C++
ツール
■
■
Visual C++ 2005 Express
CUnit
5
Vista正式リリースまでにはCPU周
と。これからプログラミングを始めよ
りをも少し(かなりかも)強化してや
うというビギナーには誠に有難いこ
らんとあかんかとは思ってます。CPU
とです。
だけならさほどの出費にはならんの
今回は初心に帰って「C」をネタに
ですが、僕の愛機はSocket754のSem
します。アプリケーション開発に有
pron。Socket754は最早型落ちして
効な単体テストのフレームワーク「C
てSocket939のAthlon X2(DualCore)
Unit」をVisual C++ 2005 Expressで
が挿さらない。メモリスロットは2GB
使うというココロミ。
が精一杯でグラフィックボードも出物
2006 July 113
ありません。ウォーターフォールでは「実装してからテ
CUnitとは
ストで検証」だったのが「テストを用意し、それにパス
するように実装」となります。そんなテスト環境を提供
21世紀に入って、XP(eXtreme Programming)がち
するのが xUnitと呼ばれる単体テストフレームワーク
ょっとしたブームになりました。従来のウォーターフォ
(UnitTestFramework)で、今回紹介するCUnitはxUnit
ールモデル、すなわちアプリケーションの開発を定義/
のひとつです。
設計/実装/検査の各工程にきちんと分け、前工程でき
っちりと固めて後工程に引き渡すというもの。流れ作業
CUnit導入準備
のごとく作業が進み、理想的な開発プロセスといえるで
しょう。が、現実はそう甘くない。作ってる最中に機能
追加やら仕様変更やらが容赦なく飛び込んできます。加
CUnitはライブラリです。テストコードを書き、コン
えて昨今は「早く作る」が重要になってきています。長
パイルしてCUnitライブラリをリンクするとテストプロ
い時間をかけてじっくりやってたらできあがった頃には
グラムが出来上がります。これを実行すれば実装したテ
時代遅れになっちまう。ソフトウェア開発が周りの変化
ストコードを片っ端から呼び出してその結果が出力され
に柔軟かつ迅速に対応することが求められているんで
ます。
す。
そこで現われたのが XPと呼ばれる開発手法。XPでは
CUnitはSourceForge上で開発が進められており、最
新版は、
(詳細)設計以降の工程がテストを中心に組み立てられ
ています。つまり、詳細設計があらかた終わればその仕
http://sourceforge.net/projects/cunit/
様からテストを作れます。
「この仕様を満たすのならば
これらのテストにパスするはずだ」言い換えれば「これ
から入手できます。5月時点での最新版はversion2.1-0で
らのテストをすべてパスすれば仕様を満足していること
す。CUnit-2.1-0-src.tar.gzまたはCUnit-2.1-0-src.zipをダ
が保証される」と言い切れるテストの集合体(テストス
ウンロードし、適当なディレクトリ(フォルダ)に展開
ィート:TestSuite)が作れます。そのテストは紙に書く
してください(以降このディレクトリを<CUNIT>と表
のではなく、計算機が実行可能な“コード”で記述しま
記します)
。
す。そうすれば人の手でひとつひとつ実行しなくともボ
Visual C++ 2005 Expressを起動し、ソリューション
タン一発でたくさんのテストを高速に行ない、その結果
「<CUNIT>¥VC8¥CUnit.sln」を開きます(図1)
。CUnit.
を出力させることができます。操作ミスもテスト漏れも
slnにはいくつかのプロジェクトが 納められていますが、
CUnitライブラリ本体は libcunit だけで、それ以外はライ
図1:CUnitのソリューションファイル(CUnit.sln)を開く
ブラリ自体のテストコードとサンプルコードです(図2)
。
Debug‐Static、Release‐Static、Debug‐DLL、Release‐
図2:CUnit.slnの構成をチェック
114 Windows Developer Magazine