エンジニアのソフトウェア的愛情

または私は如何にして心配するのを止めてプログラムを・愛する・ようになったか

その0:googletestについてのまとめ

探すとたくさんの情報があり、ドキュメントの翻訳をされているかたも少なくありませんが、自分で使うためにまとまった形にしておくと便利だと思い立ち、まとめてみることにしました。

内容は“GitHub - google/googletest: Google Test”から、ドキュメントとしてはその基礎応用を元にしています。

導入

まずgoogletestのサイト(http://code.google.com/p/googletest/)からファイルを入手します。2009/10/02現在の最新バージョンは1.3.0です。
.tar.bz2形式、.tar.gz形式、zip形式の圧縮ファイルが用意されているので適当なファイルをダウンロードしてください。


インストールで手っ取り早いのは、そのままビルドしてインストール。

./configure
make
sudo make install

またプロジェクトファイルが用意されているので、それぞれの環境でビルドすることもできるようです。

環境 フォルダ
Microsoft Visual Studio msvc/
Xcode (Mac OS X) xcode/
Scons scons/
Borland C++Builder codegear/(※1)

※1:ドキュメントには記載があるのですが、少なくとも現在のバージョンには含まれていないようです。

使ってみる

googletestを使った簡単なコードを上げておきます。詳細は今後解説していくつもりです。

#include <gtest/gtest.h>

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

TEST(AddTest, Add1)
{
    EXPECT_EQ(1, add(1, 0));
    EXPECT_EQ(1, add(0, 1));
    EXPECT_EQ(2, add(1, 1));
}

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

googletestを利用するには、gtest/gtest.hをインクルードします。


コンパイル

$ g++ -o sample1 sample1.cpp -lgtest

libgtestをリンクするように指定します。


実行結果。

[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from AddTest
[ RUN      ] AddTest.Add1
[       OK ] AddTest.Add1
[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran.
[  PASSED  ] 1 test.


テストの実行時にオプションを指定することもできます。
これらも順次解説していく予定です。