案件に導入した話をします。私の所属している新規ゲーム案件ではサーバサイドをPerlとC++で開発しており、Perlは社内に知見がありメソッド単位でテストをがっつり書いており品質が保たれていましたがC++はメンバーの知見がなくテストも書かれていない状態が続いていました。C++はバトルのパケットを中継するリレーサーバ的な役割を担っており、バトル部分が複雑化するに伴いC++サーバに徐々にバグが潜んでいる感じで大変困っておりました。テストの書き方はJUnitライクな感じなのでxUnit系のテストフレームワークを使ったことある方ならとっつきやすいかな〜と思います。TestはLinux、Mac、Windowsどの環境でも使用できるテストフレームワークです。それぞれの環境でビルドできるよう各環境用にビルドファイルが用意されているので案件ごとの環境に適したやり方でビルドできるかと思います。使ってビルドしました。以下のコマンドでビルドできます。2つのライブラリファイルが生成されます。ライブラリとヘッダの場所が分かれていて分かりにくい感じはありますね〜。テストを書いてみる早速テストを書いてみます。ディレクトリ構成は以下のようにしました。example_test.cpp2つの引数の合計を返すプログラムとそのテストを書いてみます。2));}テストケースごとにTESTマクロを呼び出します。引数はテストケースの名前、第二引数は個々のテストの名前です。引数はフィクスチャクラスの名前を兼ねており、複数のテストで共通で使用するオブジェクトの生成などの処理がある場合にTESTマクロではなくTEST_Fマクロを呼ぶことでフィクスチャクラスに共通処理をまとめることができます。テストはアサーションで行います。ここではsum関数の実行結果が期待した値になっていることをテストしています。