C++ ユニット テスト フレームワークの推奨事項に関する質問がすでにいくつかあることは承知していますが、回答はすべて役に立ちませんでした。フレームワークの 1 つを推奨するだけで、(機能の) 比較に関する情報は提供されていないためです。
最も興味深いフレームワークは、CppUnit、Boost、そして新しい Google テスト フレームワークだと思います。すでに比較した人はいますか?
ベストアンサー1
新しいプレイヤーはGoogle テスト( Google C++ Testing Frameworkとも呼ばれます) ですが、これはかなり優れています。
#include <gtest/gtest.h>
TEST(MyTestSuitName, MyTestCaseName) {
int actual = 1;
EXPECT_GT(actual, 0);
EXPECT_EQ(1, actual) << "Should be equal to one";
}
主な特徴:
- ポータブル
- 致命的および非致命的アサーション
- 簡単なアサーション情報メッセージ:
ASSERT_EQ(5, Foo(i)) << " where i = " << i;
- Google Testは自動的にテストを検出するので、実行するためにテストを列挙する必要はありません。
- 主張の語彙を簡単に拡張できるようにする
- 死亡テスト(上級ガイドを参照)
SCOPED_TRACE
サブルーチンループの場合- どのテストを実行するかを決めることができます
- XMLテストレポート生成
- フィクスチャ/モック/テンプレート...