C++の一般的な単体テストフレームワークをQtest of Qtと比較できますか?QTestと他のフレームワークを比較する
(CppUnitは、ブーストテスト、Googleのテスト等。)
長所短所は何ですか? ありがとうございます。
注:GUIテストはあまり重要ではありません。
C++の一般的な単体テストフレームワークをQtest of Qtと比較できますか?QTestと他のフレームワークを比較する
(CppUnitは、ブーストテスト、Googleのテスト等。)
長所短所は何ですか? ありがとうございます。
注:GUIテストはあまり重要ではありません。
QTestは、ユニットテスト用のUIコンポーネントとして私が知っている唯一のフレームワークです。我々はいくつかの成功とそれを使用したが、私たちの定期的なユニットテストのためにBoost.Testに固執する。
QtTest(最大Qt 5.7)はuutのアサーションを期待する能力を提供しませんが、Googletestは死亡テストの概念を持ち、アサーションをテストするテストを持つことができます。これはGoogletestで役に立ち、QtTestには欠けていることがわかりました!
私の経験から、Qtテストフレームワークはお勧めできません。挙げることができるものを二つの可能な利点は、次のとおり
主な欠点:
QCOMPARE
ブーストはシンプルで使い勝手が良く、ほとんどの場合、驚かされることなくうまく動作します。
Googleのテストフレームワークの主な利点は、モックのサポートです。しかし、この機能は他のフレームワークにも使用できます。予想されるコールシーケンス、カスタムマッチャー、アサーションを人間が読めるように定義するなど、多くの優れた機能を備えています。しかし、これらの機能に精通するには時間がかかります(必要と仮定して)。
もう1つのフレームワークについて言及したいと思います。ヘッダーのみのフレームワークであり、アサーションはほとんどありません。例えば。 REQUIRE(a == b)
が動作し、値がa
とb
の場合は解決されます。フィクスチャクラスやボイラープレートは必要ありません。テストケースでセクションを定義するだけで、セクションごとにN回実行されます。これは非常に簡単で、人間が読むことができます。反対側では、デフォルトでコンパイルするには時間がかかります。