Google TEST でつまったメモ

ぼちぼち C++ を再びやろうかな、と思ってテストフレームワークを調べると Google Test ってのがいいらしいので、インストールした。そのメモ


1. コンパイル

とりあえず、cmake を入れて、こいつでビルドした。g++ で直接作成してもいいような

  • aptitude install cmake
  • unzip gtest-1.6.0.zip
  • cd gtest-1.6.0
  • mkdir build
  • cd build
  • cmake
  • make

2. テストを書いてみる

#include "gtest/gtest.h"

int main(int argc, char* argv[]) {
  ::testing::InitGoogleTest(&argc, argv);
  return RUN_ALL_TESTS();
}

int factorial(int n) {
  return 0;
}

TEST(FirstTest, factorial) {
  EXPECT_EQ(1, factorial(0));
}

g++ FactorialTest.cpp -o factorial_test -I$GTEST_DIR/include -L$GTEST_DIR/build -lgtest -lpthread

とするとコンパイルできるので、実行するとテストできる。

うーん。コンパイル対象のファイル(FactorialTest.cpp)を g++ の引数の最後にまわしたりすると、リンケージエラーになるな。常識なのかもしれんけど、そんなことすら知らんのが今の状態だ。

テストを起動する main プログラムはいつも同じなので gtest 側で libgtest_main が用意されている

g++ FactorialTest.cpp -o factorial_test -IGTEST_DIR/include -L$GTEST_DIR/build -lgtest -lgtest_main -lpthread

とすれば FactorialTest.cpp から main() を削除できてテストコードに集中できる。