C++ プロジェクトで TDD を使用している方がいるかどうか、C# や Java などのマネージ言語と比較して TDD がどのように機能するかを知りたいです。また、C++ プロジェクトのテストを自動化するために、どのフレームワークを使用していますか?
3 に答える
まだ言及されていないように見える 2 つの便利な C++ テスト フレームワークはBoost test
、 とGoogle Test
です。
最近、TDD を使用して開発された C# プロジェクトから、C++ を使用するプロジェクトに移行しました。私はそれをかなり恐れていましたが、TDD で C++ を実行することは、以前の (TDD 以外の) C++ の経験から覚えているよりもはるかに楽しく、コードはより堅牢であることがわかりました。
Google Test を使用しています。NUnit/MbUnit ほど使いやすいわけではありませんが、かなりうまく機能しているようです。Google モッキング フレームワークhttp://code.google.com/p/googlemockもありますが、まだ使用していません。
テスト駆動開発はどの言語でも可能です。言語に適したテスト ツールと方法論が必要であり、場合によっては、プロジェクト用のカスタム テスト インフラストラクチャが必要になる場合もあります。
CppUnit (少なくとも 1.x) は非常に貧弱なフレームワークであることがわかりました。C++ 言語で Java/C# イディオムを使用しているようで、STL コンストラクトをサポートしていません。
テスト駆動開発 (C 言語) の良い例が必要な場合は、Wine プロジェクトを見てください。 Wineリポジトリに。独自のカスタム テスト インフラストラクチャがあります。