Google Test (GoogleのC++向けユニットテストフレームワーク) 使ってみたメモ
簡単に使い方をメモ
ライブラリファイルを作る
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; }
で、もう一度コンパイル&実行。
今度はテスト通った。
こんな感じでテストできるっぽい。使ってみよう。