google test をテストする

というタイトルで書いてたんやけれど、とりあえずソースを見たところと、使ってみた範囲での特徴と仕組み。あまりたくさんのテストを触ったことがある訳じゃないので変なこと書いているかもしれへん。

特徴みたいなもの

とりあえず書いたらテストできる。色付き。

仕組みみたいなもの

静的メンバ変数の初期化タイミングを使ってメイン関数が始まるまでには、テストを書くだけでテスト一覧が列挙されている。
具体的には、テスト用のマクロを書くと、テストクラスが作成され、テスト情報が、静的メンバとして自動的に作成され、同時にテストケースも作成される。
作成されたテストケース、テスト情報は static な singleton に格納される。のでテストの実行は、唯一のインスタンスに対してテスト実行を起動させるだけ。

使い方みたいなもの

テストを書いた後はテスト用のメインクラスで、テスト実行マクロを実行するだけ。

int main()
{
  return RUN_ALL_TESTS();
}

TEST(ATEST, CheckA)
{
  EXPECT_EQ(...);
}
TEST(ATEST, CheckB)
{
  EXPECT_EQ(...);
}

これで ATEST っていうテストケース中の CheckA, CheckB というテストが実行される。書き忘れなし。覚えなきゃだめなことなし。取っ付きは良いかも。
もっと細かいテストを書く場合はいろいろすることがあるけれども、とりあえずはさっくりと。

つかってみて

gcc, vc は問題なし。R4000とかCellとかARM9とかのコンパイラで試したかったけれど、gcc だったら問題ないだろうし、CodeWarrior でも、テンプレート機能が必須ってだけで、stl は使ってないので、問題なさそう。