たとえば、単体テスト用に Java3D クラスをモックアウトしようとしています。
mock(VirtualUniverse.class);
また
mock(Canvas3D.class);
残念ながら、VirtualUniverse (Canvas3D からも参照されます) には、メソッドを含む MasterControl への静的参照があります。
static void loadLibraries(){
...
}
モック中に呼び出され、外部ライブラリをロードしようとしますが、これはまさに私が避けようとしているものです。
Java3D フレームワークを利用するアプリケーションに適用されるモックの一般的なアプローチとして、人々が何を使用しているかを聞きたいと思います。特に、ユニバースを処理するための満足のいくアプローチを見つけた場合はなおさらです。
アップデート:
この質問をした後、いくつかのことが起こりました。1 つは、Java3D と JavaFX の状態について詳しく学んだことです。Java3D に関する作業は、JavaFX に集中することを優先して、現在停止されているようです。また、JavaFX には、現時点で 2011 年第 3 四半期に Java API が含まれる予定です。私たちの既存のコードはシーングラフ ベースなので、他のシーングラフ パラダイム ツールを探し回ったところ、うまく機能しそうな jMonkeyEngine (jME) にたどり着きました。
jME のアプリケーション クラスは構成よりも継承を優先しますが (com.jme3.app.SimpleApplication を参照)、デリゲータを継承階層に挿入するのは簡単だったので、より TDD 対応の方法で独自のアプリケーションを作成できました。また、jME チームは静的動作の使用を回避することに長けています。これは、UT のコンポーネントをモック アウトする作業に役立ちます。
したがって、私は、彼が代表団の考えに賛成しているという根拠に基づいて、Zsolt の回答を受け入れます。