0

いくつかのエンティティといくつかのバッキング Bean を実装しました。ただし、この場合はGlassfishであるアプリケーションサーバーでドメインモデルまたはエンティティをテストする方法があるかどうかを知りたい.

たとえば、新しいエンティティを追加した場合、エンティティの書き込みと読み取りを行って永続性が正しいことをテストし、いくつかの操作を実行したいと考えています。

標準アプリケーションには JUnit を使用していましたが、アプリケーション サーバーにデプロイされた Web アプリケーションでは混乱します。

これに対処する標準的な方法は何ですか。JSFUnit について聞いたことがありますが、Glassfish の例は見当たりませんでした (関係ないのでしょうか?)

PS。私のプロジェクトには EJB が含まれていますが、組み込みアプリケーション サーバーまたはホスティング サーバーでテストする必要があると思いますか?

この種のものに対処するためのベストプラクティスは何かを理解するのを手伝ってくれませんか?

よろしくお願いします

4

1 に答える 1

1

JPAはコンテナの外で動作するため、できればコンテナ外でのテストが必要です。テスト用に設計され、Java SE のみを使用しているかのように構成された新しい persistence.xml をセットアップするだけで、エンティティをテストできます。コンテナ内にいないため、entitymanager インスタンスを自分で設定する必要があります。テストする EJB からテスト クラスを継承させ、保護された EntityManager インスタンスを EntityManagerFactory のインスタンスに設定するか、各 DAO EJB の EntityManager にセッターを追加します。それからあなたは行く準備ができているはずです。ただし、トランザクションを手動で処理する必要がありますが、おそらく各テストから変更をロールバックする必要があるため、ほとんどの呼び出しで同じ方法で処理できるはずです。

于 2012-06-23T15:31:13.680 に答える