単体テスト フレームワークに関しては、主に jUnit と TestNG の 2 つがあります。どちらにも利点があり、どちらも同等のパフォーマンスを発揮します。jUnit の主な利点は、(私の考えでは) デフォルトで Eclipse プラグインが組み込まれており、簡単にテストを呼び出すことができることです。
モック フレームワークに関しては、それらがテスト アプローチの必須部分であるとは思いません。もちろん、それらは便利ですが、特定の目的を解決します: 動作のテスト (インターフェイスのテストとは対照的に - jUnit が許可するもの)。モッキング フレームワークを使用すると、特定のクラスが特定のインターフェイスをどのように実装するかをテストできます。必要ですか? もちろんです.最初にそれが必要ですか?わかりません.
ルールに関して、有用であるとわかった唯一のルールは (いつものように) シンプルです: 「少なくとも 1 回は壊れたコードを常にテストする」。バグトラッカーを検討してください。バグが発生するたびに、回帰がないことを確認する単体テストが必要です。私の考えでは、これは高品質のコードを作成するためのより高速な方法です。
ファンシーで効率的な出力に関しては、継続的インテグレーション サーバー (明らかにHudson ) をインストールすることをお勧めします。副作用がないことを確認するために、コードがコミットされるたびにすべてのテスト スイートが実行されます。テスト実行回数などを示すグラフを生成します。また、コード カバレッジ ツールとグラフを統合することもできます。この継続的インテグレーション サーバーは、本当に高速なテスト バディになります。