Google Test (GoogleのC++向けユニットテストフレームワーク) 使ってみたメモ

簡単に使い方をメモ

SVNなどでソースコードを取ってくる。

svn checkout http://googletest.googlecode.com/svn/trunk/ googletest

ライブラリファイルを作る

READMEによると CMake がおすすめらしい。CMake いれてなかったので、brew install cmakeでインストールしておいた。そして、以下の手順でライブラリファイルを作成。

cd googletest
mkdir build
cmake ..

これで、カレントディレクトリの下に Makefile ができているので、

make

すると、libgtest.a と libtest_main.a が出来る。これらのライブラリをテストコードと一緒にリンクすることでテストコードを実行するファイルが生成される。libgtest.a はフレームワークの本体で、libgtest_main.a はフレームワークが用意しているmain()関数。自分でmain()関数を書く場合は、後者をリンクする必要はない。

テストコードのコンパイル〜実行

早速テストコードを書いてみる。以下のページからちょこっと拝借した。
その1:基本的な使い方 - エンジニアのソフトウェア的愛情
分かりやすくするため、わざと失敗するテストに書き換えた。

上記のコードを test.cc として保存して、以下のようにコンパイルする。このコードにはmain()関数が無いので、libgtest_main.a とリンクしてあげることで、フレームワークが用意しているmain()関数とリンクされる。

g++ -I${GTEST_DIR}/include test.cc ${GTEST_DIR}/build/libgtest_main.a -o test

上記の通りコンパイルすると、カレントディレクトリ配下に test ファイルが出来ているはずなので、そのまま実行してみる。以下のような結果になったら、ひとまずテストが動いていることが確認できた証拠。

ためしに、ソースコードを修正してみる。

int add(int x, int y)
{
  return x + y;
}

で、もう一度コンパイル&実行。

今度はテスト通った。

こんな感じでテストできるっぽい。使ってみよう。