2013-12-18 25 views
5

私は、EJB 3.0、Oracle WebLogicを使用しています。 EJB(3.0)をテストする方法EJB 3.0のテスト方法を教えてください。

は、次の質問に助けが必要ですか?私は単体テストや統合テストを意味しますか?何らかの組み込みEJBコンテナを使用したり、単体テストを作成するためのモックを作成できますか?おそらく、特別なテストフレームワークまたはaproachesがありますか? EJBは私にとっては新しいものではありませんが、私は決してそれらのためのテストを書いていません。 私にはどんな情報でも役立ちます。

ありがとうございました。

答えて

6

1つのオプションは埋め込みコンテナを使用しています。テストの実行ごとに起動し、jndiのルックアップを使用してBeanを取得し、コンテナの設定を自分で管理し、あらゆる種類の退屈で非生産的なものを管理する必要があります。

一方、Arquillianのようなフレームワークがあります。テストでは@EJBのような注釈をサポートし、DIはコンテナを管理します....そのWebサイトのガイドを読んでください。

私の経験から、非コンテナに依存しない機能のテストでは動作するかもしれませんが、モックは複雑なejbテストには適していません。

私のアドバイスはArquillianと一緒に行われています。

+0

これは良い考えです。私はArquillianについて聞いたことがありますが、それがEJBテストに使用できることを知らなかった。ありがとう – john

+1

GoshはいEJBをテストすることができます - http://arquillian.org/guides/getting_started_rinse_and_repeat/ – HankCa

1

junitテストで使用される組み込みEJBコンテナは、servies & ejbsの統合テストに適しています。

open-ejb(またはglassfishな​​どの他の埋め込みコンテナ)を使用すると、junitをフレームワークとして使用して簡単に小さなテストを書くのに役立ちます。 JPAでもメモリデータベースを使用して非常にうまく統合されています。

mockingについては、リモートサービスについては、まだmockitoを使用することができます。

ここにいくつかの文書化&実行可能な例を検索:https://tomee.apache.org/examples-trunk/

+0

テスト用の具体例へのリンクは、TomEEが可能なすべてのものの例のリストよりも優れています。 – meustrus

2
私はコードの小さな単位をテストし、テストされているこれらの種類としてのみ統合テストのために埋め込まれたコンテナを使用することが可能な限りプレーンのJUnitとmockitoを使用しようと

単純な単体テストとしてはるかに長く実行されます。単体テストを実行している開発者にとっては、決して迷惑にならないはずです。

関連する問題