私は、Struts 1.3、いくつかのセッション Bean、およびいくつかの EJB を含む Web アプリケーションに取り組んでいます。
Struts アクション クラスは、JNDI ルックアップを実行して、アプリケーションのサービス層を実装するステートレス セッション Bean を取得します。このセッション Bean は、エンティティと対話するステートレス セッション Bean でもある DAO オブジェクトと対話します。
Struts アクション -> サービス (ステートレス セッション Bean) -> DAO (ステートレス セッション Bean) -> エンティティ
私はいくつかのアプローチを検討しており、それらの長所と短所を理解するのに助けが必要です.
ServiceFactory と ServiceFactoryProvider を作成しようと考えています。テスト ケースは ServiceFactoryProvider を再構成して、サービス層を実装するステートレス セッション Bean のモックを生成する TestServiceFactory を返します。
さらに別の方法として、テスト ケースで JNDI ディレクトリをオーバーライドして、通常の JNDI ルックアップでモック オブジェクトをフェッチすることもできます。
3 番目の方法は、ServiceFactory の完全修飾名を指定するプロパティ ファイルを使用することです。本番コードの場合、このファイルには本番ファクトリの名前が含まれ、テスト コードの場合、テスト クラスパスに別のファイルがあり、テスト ファクトリの名前が含まれます。