👨💻
Visual Studio 2022 GoogleTestを使ってみた
テストするプログラム
シナリオは電卓アプリの開発です。
この例は2つの値を足す機能を追加したのでそのコードの確認を行ってみます。
環境
OS Windows11
IDE(統合開発環境) Visual Studio 2022
https://learn.microsoft.com/ja-jp/visualstudio/test/how-to-use-google-test-for-cpp?view=vs-2022
Microsoft Visual Studio で C++ 用の Google Test を使用する
新しいプロジェクト作り方(初心者向け)
- 空のプロジェクトを選択する。
- プロジェクト名を決める。
- 画面右側のソリューションエクスプローラーのソースファイルを右クリックして、.h, .cppを作成してコードを書く。
テストするコード
- 電卓クラスのヘッター
calculator.h
#pragma once
class calculator
{
public:
calculator();
~calculator();
int add(int a, int b);
};
- 電卓クラスのコード
2つの値を足すcalculator::add(int a, int b)をテストします。
calculator.cpp
#include "calculator.h"
calculator::calculator()
{
}
calculator::~calculator()
{
}
int calculator::add(int a, int b)
{
return a + b;
}
- mainのコード
電卓クラスのaddを使うコードです。
main.cpp
#include <iostream>
#include"calculator.h"
int main()
{
calculator cal;
std::cout << cal.add(1, 2) << std::endl;
return 0;
}
Google Testを別プロジェクトとして追加する
- ソリューションを右クリック。
- 追加→新しいプロジェクトをクリック。
- Google Testを選択して次へ。
- テスト名を入力して作成する。
- テスト プロジェクトの構成を設定
- 追加できたか確認。
テストコードを書く
- テストしたいヘッダーファイル(../CalculatorApp/calculator.h)をインストールする。
ファイルの場所が違うので相対パスで指定する。 - テストしたいコード(EXPECT_EQ(cal.add(1, 2), 3);)を書く。
https://google.github.io/googletest/reference/assertions.html#EXPECT_EQ:~:text=caused by rounding.-,EXPECT_EQ,-EXPECT_EQ
GoogleTest EXPECT_EQ(引数1と引数2がイコールか確認する)
test.cpp
#include "pch.h"
#include "../CalculatorApp/calculator.h"
TEST(TestCaseName, TestName) {
EXPECT_EQ(1, 1);
EXPECT_TRUE(true);
}
TEST(addCaseTest1, addTest)
{
calculator cal;
EXPECT_EQ(cal.add(1, 2), 3);
}
Visual Studioの設定を変更してGoogle Testが実行できるようにする
選択されているコードを実行できるようにする
このままの設定で実行ボタンを押してもmain()が実行されるので設定を変更する。
- ローカルWindowsデバッガーの▽をクリックする。
- ①スターアッププロジェクトの構築...をクリックする。
- ②現在の選択範囲を選択する。
- この設定により、現在選択されているコードのプロジェクトが実行できるようになる。
画像ではプロジェクト(calculator-Test1)のコード(test.cpp)が選択されているのでGoogle Testが実行される。
リンカーの設定をする
リンカーを設定しないで実行することはできないので、実行ボタンを押すと以下のようにエラーとなる。
-
test.cpp(calculator-Test1)のコードを表示している状態でプロジェクト→プロパティをクリックする。
-
①入力をクリックして、追加の依存ファイルを編集する。
-
パスを設定してOKをクリックする。
-
実行してみる。できました!
Visual Studioのテスト エクスプローラーを使ってみる
Visual Studioにはテスト エクスプローラーというものがあり、テストの実行画面を見やすくすることができる。
-
テストからテスト エクスプローラーをクリックする。
-
実行ボタンをクリックして実行する。
Discussion