web-dev-qa-db-ja.com

C ++によるテスト駆動開発

C++でTDDを始めようとしています。 CPPUnitを見たことがありますが、他に人々が好むオプションがあるかどうか疑問に思いました。

あなたの提案をありがとう!

21
hahuang65

私はお勧めできます Google MockGoogle Test のコピーがバンドルされています。数年前にUnitTest ++からGoogleTest/Google Mockに切り替えましたが、振り返ることはありませんでした。

モック機能を使用したくない場合でも、Googleモックを使用できます。その マッチャー非常に便利 です。

27
Tobias Furuholm

私は数年前にCppUnitからboost :: testに切り替えましたが、とても満足しています。

  • CppUnitのドキュメントは存在しません。頑張ってください 見つけようとしています コードを読まずにサポートするコマンドラインオプション。どうやら、JUnitにすでに精通している人にとってはもっと理にかなっているようです。 boost :: testは優れています ドキュメント
  • boost :: testの自動テスト登録 facility は、ユニットテストケースの追加をめちゃくちゃ簡単にします。 CppUnitを使用すると、テストケースごとにかなり多くの定型文を作成する必要があります(ヘッダーの行と、それを登録するための.cppの行、テストメソッド自体の上に)。
  • boost :: test lets yo コマンドラインから正規表現でテストサブセットを選択します。 CppUnitソースをハックして、最初にそれを取得したときにそれを実行する必要がありました。
  • 私が行うoneのこと miss CppUnitからは、その " Protectors "です。独自に定義して、各テストをラップし、何でもチェックすることができます(たとえば、x87浮動小数点丸めモードでコードが混乱する問題がありました。プロテクターで状態が変更されていないことをチェックすると、すべての違反者がすぐに見つかりました)。 boost :: testには、 test_observer しかし、前回試したときは、実際にテストに失敗することはできませんでした。
9
timday

C++ユニットテストフレームワークを探しているだけの場合は、この質問とその回答を参照してください。 C++ユニットテストフレームワーク

6
Fred Larson