C言語のコードテストには、GoogleTestを使っています。
コードの単体テストはCUnitなどいろいろありますが、GoogleTestを使う最たる理由はGMockの存在があります。
GMockは簡単に言うと、モック関数を簡単に作れるというところになります。
CUnitなどではモック関数を、引数のチェック・動作の切り替えを全部用意しなくてはなりませんが、GMockはとても簡単にこれらのことができます。
今回からしばらくは、GoogleTestの使い方について書いていきます。
●今回の環境
Windows10上のWSL2のubuntu22.04で作業していきます。
●インストール手順
手順1:GoogleTestのソースコードをダウンロード
GoogleTestのソースをダウンロードします。
ダウンロード方法は2通りあり、aptを使う方法と、githubからダウンロードする方法があります。
・aptでダウンロード
$ sudo apt install googletest
→ /usr/src の下に、googletestディレクトリができる
aptでは、ソースコードがダウンロードされるだけで、ビルド・インストールを自分で行う必要があります。
$ wget https://github.com/google/googletest/archive/refs/tags/release-1.11.0.tar.gz
→現在のディレクトリに release-1.11.0.zip ファイルができる
githubからダウンロードした場合は、解凍する必要があります
$ tar xvzf release-1.11.0.tar.gz
→現在のディレクトリに、googletestディレクトリができる
使い分けとしては、システム全体で共用したい場合はaptで、プロジェクトごとにバージョンを分けたい・独立させたいときは、githubからダウンロードするようにするとよいでしょう。
手順2:ビルド
cmakeでGoogleTestをビルドします。
cmakeがインストールされていない場合は、cmakeをインストールします。
$ sudo apt install cmake
解凍したGoogleTestのディレクトリに入る。
aptを使った場合 → /usr/src/googletest ディレクトリ
githubからダウンロードした場合 → 解凍した場所にある googletestディレクトリ
ビルド・インストールする。
$ cmake . $ make $ sudo make install
→/usr/local/install の下に gtest と gmock のディレクトリができる
→/usr/local/lib の下に libgmock.a libgmock_main.a libgtest.a libgtest_main.a ができる
※cmake で -DCMAKE_INSTALL_PREFIX=(path) オプションを与えてインストール先を変えることも可能
以上でインストール完了です。
●インストールの確認
適当なディレクトリで、以下のファイルを用意してください。
#include <gtest/gtest.h>
TEST(ABC, abc)
{
}
ビルドします。
$ g++ test.cpp -o test -lgtest -lgtest_main -lpthread
→ test 実行ファイルができる
実行します。
このような表示になれば、インストールが正常にできています。
GoogleTestはC++のテストフレームワークですが、Cもテストできます。
主にC言語での使い方を記載していきます。