私は会社で単体テストの取り組みを開拓しており、使用するモック フレームワークを選択する必要があります。私はこれまでモッキングフレームワークを使用したことがありません。すでに Google Test を選択しているので、Google Mock を使用するとよいでしょう。ただし、Google Mock のチュートリアルを見た後の私の第一印象は次のとおりです。
- MOCK_METHODn マクロを使用してモック クラスの各メソッドを再宣言する必要はないように思われ、DRY 原則に反するようです。
- それらのマッチャー (たとえば、EXPECT_CALL(turtle, Forward(_)); の「_」) とマッチングの順序は、ほとんど強力すぎるようです。たとえば、意味のないことを言うのは簡単で、そのようにしてバグを見逃してしまいます。
私は Google の開発者に大きな信頼を寄せていますが、モッキング フレームワークを判断する自分の能力には自信がありません。私の質問は次のとおりです。これらは有効な懸念事項ですか?
それとも、モック オブジェクトを定義するより良い方法はありませんか?マッチャーは実際に直感的に使用できますか? 以前に Google Mock を使用したことがある方からの回答をお待ちしております。他の C++ フレームワークとの比較も参考になります。