完全解説「C++でTDD」さらに「MFCでgoogletest」を使うまで

ClipboardImage.png

目次


  1. ライブラリをビルドする
  2. googletestをプロジェクトに組み込む
  3. テストを書く
  4. MFCアプリケーションでテストを書く

1.ライブラリをビルドする


1-1.ソースの取得

gtest-1.6.0.zip ダウンロード→展開

解凍したフォルダをリネームします「gtest-1.6.0」->「gtest」

1-2.ライブラリの作成

gtest\msvc にある「gtest.sln」を開きます。

b5cfbd49.png


[構成プロパティ][全般]から、文字セットをgoogletestを使うプロジェクトに合わせる。
b7764dc1.png


[構成プロパティ][C/C++][コード生成]の、ランタイムライブラリをgoogletestを使うプロジェクトに合わせる。

87ac869f.png

この操作を、「gtest」と「gtest_main」プロジェクトでおこないます。

1-3.ビルド

Debug/Release用を作るので2回ビルドします。

1-4.ファイル確認

gtest\msvc\Debug
4765d79c.png
 
gtest\msvc\Release
88de9317.png

1-5.以降の設定をラクにするための下準備1

この4つのファイルを、gtest\includeとおなじ位置に「lib」というフォルダを作ってコピーする。

c8dec254.png

c5a68004.png

1-6.以降の設定をラクにするための下準備2

047ff755.png

2.googletestをプロジェクトに組み込む

プロジェクトを立ち上げます。
ここでは例として「テスト駆動開発入門」のMoneyプロジェクト(Win32コンソールアプリケーション)を新規作成します。

以降、プロジェクトのプロパティ設定をおこないます。
Debug/Releaseで共通なので、構成ですべての構成選択しておきます。

2e34ac6f.png

2-1.インクルードディレクトリの設定

gtest\include フォルダを指定します。

[構成プロパティ][C/C++][全般]
f4f681f2.png


2-2.追加のライブラリ ディレクトリの設定

手順1-5で作った gtest\lib フォルダを指定します。

[構成プロパティ][リンカ][全般]
fd408ab9.png

3.テストを書く


3-1.TestMoneyファイルを追加


9413c673.png


3-2.テストコードの記述


4ca56589.png

3-3.ビルド(失敗)


3-4.プロダクトコードを実装する


Dollar.hを新規作成して実装します。

0d1b5439.png

3-5.ビルドして実行


TestMoneyで書いたテストを走らせるためには、以下のうちいずれかを選びます。
「おまじないを書く」か「_tmain関数をコメントアウト」します。

72fb8242.png

テストが実行されます。

b795183c.png


3-6.グリーンバーを表示させる


5fbc2bc0.png

gtest-gbarをダウンロードして展開したフォルダにある「Guitar.exe」を実行します。
ビルドした「Money.exe」を選択して「Go」を押します。

10eb184c.png

4.MFCアプリケーションでテストを書く


次にMFCでの手順です。
ここでは、ダイアログベースのMFCアプリケーションを例に説明します。

4-1.手順2~3-4まで同じようにおこないます



4-2.テスト用 ソリューション構成の追加


[ビルド][構成マネージャ]を開きます。

ad7cc757.png

新規作成で「Debug-Test」「Release-Test」をそれぞれ追加します。

1665fa3c.png

4-3.プリプロセッサ「_GTEST」を追加


Debug-Test [構成プロパティ][C/C++][プリプロセッサ]
a05e1021.png
Release-Testもおなじように「_GTEST」を追加します。

4-4.InitInstanceを細工


Win32アプリケーションでは、_tmain関数に細工をしました。
MFCでは、InitInstance関数に細工をします。

includeブロックで以下を追加。
a19f8de8.png

InitInstance関数を以下のように変更。
4ed4c61f.png


実行すると、[出力]ウィンドウに結果が出力されます。

94322cc6.png

テストがすべて通ると何も表示されません。

4-5.MFCでもグリーンバーを表示

手順3-6と同じように、exeを指定すると実行結果が表示できます。

ただし、MFCの実行ファイルを Guitar に指定すると、グリーンバーが表示できない不具合があります。
その不具合を修正した Guitar を作っていますので、以下のファイルをダウンロードして上書きして使ってみてください。





長くなりましたが、以上で説明をおわります。
お役に立てばうれしいです。

Let's Enjoy TDD!!

Google Test 入門ガイド
Google Test 上級ガイド