C++では、GoogleTestで単体テストができますがCppUnitも存在します。
テスト対象のコード
Calculation.h
#pragma once inline int add(int a, int b) { return 5; // あえて間違えたコード }
テストプロジェクトの生成
テストプロジェクトを生成します。
#include "pch.h" #include "CppUnitTest.h" #include "../ConsoleApplication/Calculation.h" using namespace Microsoft::VisualStudio::CppUnitTestFramework; namespace UnitTest1 { TEST_CLASS(UnitTest1) { public: TEST_METHOD(TestMethod1) { int result = add(2,2); Assert::AreEqual(result,4); } }; }
テストエクスプローラーでの実行
テストエクスプローラーで実行してみます。
失敗することが確認できました。
テストするコードを修正します。
#pragma once inline int add(int a, int b) { return a+b; }
もう一度テストエクスプローラーで実行します。
成功しました。
使ってみての感想
- GoogleTestと比べるとVisual Studioのインテリセンスが聞くので書きやすい
- ジェネリックを使ったAssert関数であるため、C#のNUnitよりも書きやすい。
- ただし、Resharperはサポートしていない。(将来的には対応することも考えている)