Google Test入門 + ReSharper

この記事はHAL Advent Calendar 2017、23日目の記事です。

TL;DR

VisualStudioにGoogleTestを導入する

  • https://github.com/google/googletestからclone
  • CMakeでprojとslnファイルを生成 or msvc/2010/gtest.slnを使う
  • ビルドしてLibを生成 (DebugとRelease両方で)
  • GoogleTestを導入するプロジェクトを作成する
  • 生成したLibへのパスを通す
    • Debugの場合
      • Runtime Libraryの設定が /MDd になってる場合 /MTd にする
      • gtest_maind.lib gtestd.libにパスを通す
    • Releaseの場合
      • Runtime Libraryの設定が /MD になってる場合 /MT にする
      • gtest_main.lib gtest.libにパスを通す
  • includeディレクトリにパスを通す

NuGetから入れる方法も有るらしいです。

とりあえずテストコードを書く

#include <gtest/gtest.h>
#include "../Source/UtilFunc.h"

TEST(UtilFunc, ClampTest)
{
	EXPECT_EQ(0, Clamp(-10, 0, 10));
	EXPECT_EQ(0, Clamp(0, 0, 10));
	EXPECT_EQ(10, Clamp(10, 0, 10));
	EXPECT_EQ(10, Clamp(20, 0, 10));
}

Google Testのドキュメントはこちらに有ります。
googletest/Primer.md at master · google/googletest · GitHub

gtest_main.libをリンクさせておけば、エントリーポイントが無くてもokです。
ただ、リンカに/SUBSYSTEM:CONSOLEを指定しないと、エントリーポイントが無いって怒られることがあるので注意です。

ReSharper?

youtu.be
JetBrains社が開発してるVisualStudioのExtensionです。C#, VB, JS, TS, C++などに対応しており、コード解析、リファクタリング、コード生成、コーディングスタイルの矯正など、様々な機能を取り揃えています。学生なら無料で使えるので試してみるのもどうでしょうか。(JetBrains社の回し者ではありません)

ReSharperでテストを走らせる

「Alt」+「Enter」からテストを実行します。

f:id:yashihei:20171223094551j:plain

実行したテストの結果を視覚的に確認することが出来ます。多数のテストがあった場合でも把握しやすそうですね。

f:id:yashihei:20171223093102j:plain

P.S.

@_HIEMON_の記事はまだかな…?