[技術講座] CppUnit 入門
さて、各クラスの実装、単体テストが終わったので、実行ファイルを作って動かしてみましょう。main
関数を書きます。
dicegame/main.cpp
#include "DiceGameUI.h" int main(int argc, char* argv[]) { DiceGameUI diceGameUI; diceGameUI.show(); return 0; }
Autoconf/Automake を使っているのであれば、dicegame/Makefile.am を次のように書き換えます。プレフィックス bin
が指定されているプログラムは make install
で /usr/local/bin (変更可能) にインストールすることができます。
dicegame/Makefile.am
SUBDIRS = . tests # 実行ファイル dicegame(.exe) を作成する。 # make install で /usr/local/bin にインストール可能。 bin_PROGRAMS = dicegame # 実行ファイル dicegame(.exe) のソースファイル。 dicegame_SOURCES = main.cpp # libdicegame.a をリンクする。 dicegame_LDADD = libdicegame.a noinst_LIBRARIES = libdicegame.a libdicegame_a_SOURCES = \ Dice.cpp \ DiceGamePlayer.cpp \ DiceGame.cpp \ DiceGameUI.cpp \ Dice.h \ DiceGamePlayer.h \ DiceGameListener.h \ DiceGame.h \ DiceGameUI.h
書き換えたらいつもの手順でビルドします。
$ ./bootstrap $ ./configure $ make
MSVC++ を使っている場合はアプリケーション用のプロジェクトを追加します。
以上のファイルをまとめたものを用意しました。実装および単体テスト済みです。
やったー、ついに完成しました!! (パチパチパチ) さっそく遊んでみましょう。
$ dicegame/dicegame <<< サイコロ ゲーム >>> 1: 半, 2: 丁, 9: 中断 --> 1 コロコロコロ... [3][3] 私の勝ちです。(0勝 1敗) 1: 半, 2: 丁, 9: 中断 --> 2 コロコロコロ... [1][1] あなたの勝ちです。(1勝 1敗) 1: 半, 2: 丁, 9: 中断 --> 2 コロコロコロ... [3][2] 私の勝ちです。(1勝 2敗) 1: 半, 2: 丁, 9: 中断 --> 9 現在 1勝 2敗です。 ゲームを続けますか? (Y/N) --> n
う〜ん、負けてしまった(T_T)。なかなか手ごわいぞ。
CppUnit 入門いかがでしたか? 私は、最近書くソースコードはできるだけ xUnit で単体テストを行うようにしているのですが、以前に比べて自分のコードの信頼性が増したように思います。みなさんも xUnit でテストの自動化しませんか?
※ アンケート にご協力お願いします。
© 2001 OGIS-RI Co., Ltd. |
|