C/C++ を使用した単体テスト: 単体テストを行ったことがない人や、Java/Junit から来た人に何を教えていますか?
あなたの観点から見て、多くの時間やストレス (特に C/C++ に関して) を節約する最も重要な教訓/覚えておく/練習することは何ですか?
C/C++ を使用した単体テスト: 単体テストを行ったことがない人や、Java/Junit から来た人に何を教えていますか?
あなたの観点から見て、多くの時間やストレス (特に C/C++ に関して) を節約する最も重要な教訓/覚えておく/練習することは何ですか?
これを読んで...あなたはとにかく..
私は、テストクラスへの友情を自動的に付与するというこれらの推奨事項すべてに反対です...
個人的には、テストする必要があるクラスの内部にアクセスできるようにするために、次のことに集中することを好みます。
要約すると、私は、テスト クラスとの包括的な友情よりも、テスト ポイントで設計されたものを見る方がはるかに好きです。もちろん、前者は後者よりも実行するのが難しいですが、私見では、より良いコードとより良いテストが得られます。
テストのないレガシー コード ベースを処理する場合、(私がそうしなければならなかったように) 実装に単体テスト フレームワークを使用する機能テストから始めることになるでしょう。心配しないでください。あなたのコードは非常に相互に関連しているため、適切な単体テストを書くことはおそらく不可能です。また、現状に満足しないでください。機能テストが実施されたら、真の単体テストが可能になるようにリファクタリングする必要があります。あなたのコードはより良いものになるでしょう!
ripper234 を言い換えて、いくつかのルールを追加したいと思います。
最も重要な単一のレッスン:テストは、テストなしよりも優れています。
単体テスト ケースは、1 つのことだけをテストする必要があります。
単体テスト ケースでワークフロー全体をテストするのは、C# や Java よりも C/C++ でよく見かけます。
おそらく、ほとんどの C/C++ xUnit フレームワークでは、テストケースを登録するためにいくつかの手順が必要なため、新しい機能を追加するときに、既存のテストケースに数行を追加するだけの誘惑が強くなるからです。