2011-02-02 16 views
3

C++の一般的な単体テストフレームワークをQtest of Qtと比較できますか?QTestと他のフレームワークを比較する

(CppUnitは、ブーストテスト、Googleのテスト等。)

長所短所は何ですか? ありがとうございます。

注:GUIテストはあまり重要ではありません。

答えて

3

QTestは、ユニットテスト用のUIコンポーネントとして私が知っている唯一のフレームワークです。我々はいくつかの成功とそれを使用したが、私たちの定期的なユニットテストのためにBoost.Testに固執する。

0

QtTest(最大Qt 5.7)はuutのアサーションを期待する能力を提供しませんが、Googletestは死亡テストの概念を持ち、アサーションをテストするテストを持つことができます。これはGoogletestで役に立ち、QtTestには欠けていることがわかりました!

0

私の経験から、Qtテストフレームワークはお勧めできません。挙げることができるものを二つの可能な利点は、次のとおり

  • QSignalSpy:(Qtのためにのみ有用)放出される信号を確認するために、これはパラメータ化テスト
  • を書きやすい他のテストフレームワーク
  • でも使用することができます

主な欠点:

  • 備品がデフォルトでサポートされていないが、セットアップティアダウン
  • でそれを回避する必要があります
  • QCOMPAREは異なるタイプの値を比較することはできません。例えば、2つを異なる比率で比較することは不可能ですが、同等に比較可能です。 QCOMPARE

ブーストはシンプルで使い勝手が良く、ほとんどの場合、驚かされることなくうまく動作します。

Googleのテストフレームワークの主な利点は、モックのサポートです。しかし、この機能は他のフレームワークにも使用できます。予想されるコールシーケンス、カスタムマッチャー、アサーションを人間が読めるように定義するなど、多くの優れた機能を備えています。しかし、これらの機能に精通するには時間がかかります(必要と仮定して)。

もう1つのフレームワークについて言及したいと思います。ヘッダーのみのフレームワークであり、アサーションはほとんどありません。例えば。 REQUIRE(a == b)が動作し、値がabの場合は解決されます。フィクスチャクラスやボイラープレートは必要ありません。テストケースでセクションを定義するだけで、セクションごとにN回実行されます。これは非常に簡単で、人間が読むことができます。反対側では、デフォルトでコンパイルするには時間がかかります。

関連する問題